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