C# 为什么编译此代码会导致语法错误?

C# 为什么编译此代码会导致语法错误?,c#,asp.net,gridview,datarow,C#,Asp.net,Gridview,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.Find

我写了下面的代码,但我得到了我提到的错误,任何人都可以告诉我

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);
    }
}
protectedvoidbtngenerate\u单击(对象发送者,事件参数e)
{
数据行[]卓尔;
DataTable dt=新的DataTable();
foreach(GridViewRow grdACH.Rows中的grRow)
{
复选框chkItem=(复选框)grRow.FindControl(“checkRec”);
如果(chkItem.选中)
{
chkItm=真;
chkcnt++;
strBankTypeID=((标签)grRow.FindControl(“lblBankType”)).Text.ToString();
追加(strBankTypeID);
strBnkArray.Append(“,”);
}
}
oEmpDeposits.getEmpDepositDetails(out local_ds、strFedTaxId、PayperiodNumber、PayrollYear、strPayFreqType);
对于(int i=0;i
语法错误来自以下语句:

dRow = local_ds.Tables[0].Select(strBnkArray.ToString().TrimEnd(','));
你试图使用的表达方式有问题

该表达式由以下内容组成:

strBnkArray.ToString().TrimEnd(',')
检查这是什么,你就会找到答案。也许像这样:

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

为什么不使用
ArrayList
而不是字符串数组呢。这样就很容易操纵了

样品

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);
    }
oEmpDeposits.getEmpDepositDetails(out local_ds,strFedTaxId,PayperiodNumber,PayrollYear,strPayFreqType);
for(int i=0;i
您从哪里得到错误信息?请发布完整的错误信息好吗?我想在单击按钮回答此问题之前,我们需要知道strBnkArray是什么。最好的方法是在选择行上放置一个断点,并在该点上发布strBnkArray的内容。一个小帮助我修改了我发布的代码,但这是我在循环中的第二次得到
我如何跳过此操作并打印下一个前面的内容,即假设我的字符串是C,D我只想检查跳过