Почему компиляция этого кода приводит к синтаксической ошибке?

#c# #asp.net #gridview #datarow

#c# #asp.net #просмотр сетки #datarow

Вопрос:

Я написал следующий код, но я получаю ошибку, как я уже упоминал, может кто-нибудь сказать

 protected void btnGenerate_Click(object sender, EventArgs e)
{
    DataRow[] dRow;
    DataTable dt = new DataTable();
    foreach (GridViewRow grRow in grdACH.Rows)
    {
        CheckBox chkItem = (CheckBox)grRow.FindControl("checkRec");
        if (chkItem.Checked)
        {
            chkItm = true;
            chkcnt  ;
            strBankTypeID = ((Label)grRow.FindControl("lblBankType")).Text.ToString();
            strBnkArray.Append(strBankTypeID);
            strBnkArray.Append(",");
        }
    }
    oEmpDeposits.getEmpDepositDetails(out local_ds, strFedTaxId, PayperiodNumber, PayrollYear, strPayFreqType);

for (int i = 0; i < local_ds.Tables[0].Rows.Count; i  )
    {
        string strTrim = strBnkArray.ToString().TrimEnd(',');
        strTrim = "BankAccountTypeID='"   strTrim[i]   "'";
        if (strTrim.Contains("BankAccountTypeID=',"))
        {
            strTrim = "BankAccountTypeID='"   strTrim[i]   "'";
        }

        dRow = local_ds.Tables[0].Select(strTrim);
    }
}
  

Комментарии:

1. Откуда вы получаете ошибку?

2. Пожалуйста, не могли бы вы опубликовать полное сообщение об ошибке?

3. Я думаю, нам нужно знать, что такое strBnkArray, прежде чем нажимать кнопку, чтобы ответить на этот вопрос. Лучше всего было бы, если бы вы поставили точку останова в строке выбора и опубликовали содержимое strBnkArray в этот момент.

Ответ №1:

Синтаксическая ошибка возникает из этого оператора:

 dRow = local_ds.Tables[0].Select(strBnkArray.ToString().TrimEnd(','));
  

Что-то не так с выражением, которое вы пытаетесь использовать.

Это выражение составлено из этого:

 strBnkArray.ToString().TrimEnd(',')
  

Проверьте, что это такое, и вы найдете ответ. Возможно, вот так:

 string mySelectStatement = strBnkArray.ToString().TrimEnd(',');
dRow = local_ds.Tables[0].Select(mySelectStatement);
  

Комментарии:

1. небольшая справка я изменил свой код, как опубликовано, но во второй раз в цикле я получаю , как я могу пропустить это и напечатать следующее, предшествующее, т. е. e предположим, что моя строка — C, D я хотел бы проверить, пропущены ли только C и D ,

Ответ №2:

Почему бы вам не использовать ArrayList вместо String array. Чтобы было легко манипулировать

Пример

 if (chkItem.Checked)
{
  chkItm = true;
  chkcnt  ;
  strBankTypeID  = ((Label)grRow.FindControl("lblBankType")).Text.ToString(); 
  ArrayList lstArray=new ArrayList();
  lstArray.Add(strBankTypeID);
}
  

Позже

  oEmpDeposits.getEmpDepositDetails(out local_ds, strFedTaxId, PayperiodNumber, PayrollYear, strPayFreqType);

    for (int i = 0; i < lstArray.Count; i  )
    {
        //string strTrim = strBnkArray.ToString().TrimEnd(',');
        strBankAccntType = "BankAccountTypeID='"   lstArray[i].ToString()   "'";
        dRow = local_ds.Tables[0].Select(strBankAccntType);
    }