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

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

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);
    }
}

Ответы [ 2 ]

2 голосов
/ 12 апреля 2011

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

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

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

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

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

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

string mySelectStatement = strBnkArray.ToString().TrimEnd(',');
dRow = local_ds.Tables[0].Select(mySelectStatement);
0 голосов
/ 12 апреля 2011

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

Пример

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);
    }
...