【问题标题】:Problem with DataTable.Select methodDataTable.Select 方法的问题
【发布时间】:2010-06-28 18:56:13
【问题描述】:

我的字符串在一个字符串数组中,我的数据在一个数据表中。

我要做的是,使用 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 类似于主键,是复选框列表的值成员。

【问题讨论】:

  • 你遇到了什么异常?

标签: c# datatable datatable.select


【解决方案1】:

我得到了答案。这是微软在他们的文档中忽略的一个愚蠢的 BUG。

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

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

【讨论】:

  • Select 的文档说“使用适用于 DataColumn 类的 Expression 属性的相同规则”。 Expression 的文档说:“当您为过滤器创建表达式时,请用单引号将字符串括起来:"LastName = 'Jones'"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
  • 2013-03-06
  • 2011-03-09
  • 2022-01-06
  • 2018-04-12
  • 2016-12-07
相关资源
最近更新 更多