关于c#:DataTable.Select方法问题

Problem with DataTable.Select method

我的字符串在String数组中,我的Data在数据表中。

我要做的是,使用datatable.select(string)方法选择一行,然后将其从datatable中删除。

这就是我正在做的事情,它可以正常工作很多次,但是如果我频繁更换数组,它会返回错误。 我已经检查了数据表中的数据行以及匹配的字符串。 他们在那里,如他们应该的那样。 但是有时它仍然返回null。 但是,当我进行核对时,数据正是我想要的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
             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就像主键一样,是复选框列表的value成员。


我得到了答案。 它是一个愚蠢的BUG,Microsoft在其文档中忽略了它。

您需要在字符串中加上单引号(')。 所以这条线是


DataTable1.Select("ID= '"+tempstring+"'");