我的字符串在String数组中,我的数据在数据表中。
我要做的是,使用datatable.select(string)方法选择一行并从数据表中删除它。
这就是我正在做的事情,它的工作很好,但是如果我经常更改数组它会返回错误。我检查了数据表中的数据行以及匹配的字符串。他们应该在那里。但有时它仍然返回null。但是当我核对时,数据就像我想要的那样。
for (int k = 0; k < p; k++)
{
string tempMapString = "ID =" + IDArray[k];
try
{
DataRow[] rows = myTable_2_ForCBL.Select(tempMapString);
//MessageBox.Show(IDArray[k].ToString(), "ID Array Element");
MessageBox.Show(tempMapString + " " + rows.Length.ToString(), "No of Rows mapped are:");
if (rows.Length > 0)
{
foreach (DataRow row in rows)
{
row.Delete();
}
}
}
catch (Exception err2)
{
MessageBox.Show(err2.Message);
}
}
让我知道我是否遗漏了什么。数据表中的列是“ID”和“LocationName”。 ID类似于主键,是复选框列表的值成员。
答案 0 :(得分:3)
我得到了答案。这是微软在文档中忽略的一个愚蠢的BUG。
你需要为字符串添加单引号(')。所以该行将是
DataTable1.Select("ID= '"+tempstring+"'");