繁体   English   中英

对DataTable.Select()的简单测试未得到任何结果

[英]Simple test of DataTable.Select() is not getting any results when it should

我正在尝试从现有的Sql Server数据库测试数据集上的不同查询。 我需要能够通过其ID列为正在执行的项目抓取一行。 看起来很简单的查询却没有结果。

DataSet prodspdata = new prodspDataSet(); 

DataRow[] load;
load = prodspdata.Tables["TripNumber"].Select("[ctripnumber] = '21605178'");

Console.WriteLine(load.Length);
Console.ReadLine();

load.Length输出为0。我从文档中了解到load应该是Select()查询返回的行的数组。 我知道从数据中查找结果是存在的,因此我希望load.length为1。

我在Sql Server Management Studio中测试了一个查询,以确保没有丢失任何内容:

SELECT * FROM TripNumber WHERE ctripnumber = '21605178'

这将按预期返回1行。

我的Select查询有问题吗? 我是C#的新手,我测试错了吗? 我只需要知道load包含任何结果,就可以知道我的查询是否按预期工作。

编辑:所以看来我的数据表没有行。

DataTable loadTable;
loadTable = prodspdata.Tables["TripNumber"];
Console.WriteLine(loadTable.Rows.Count);
Console.ReadLine();

这将返回0行,而loadTable.Columns.Count给了我133

我错过了一步,也许与TableAdapter有关吗?

请勿在过滤条件中使用方括号。

load = prodspdata.Tables["TripNumber"].Select("ctripnumber = '21605178'");

还请记住,您可以使用Visual Studio调试器查看DataSet和Datatables的内容。

我实际上没有用任何东西填充我的数据集,这是导致问题的原因。 我严重忽略了TableAdapter。 我添加的代码是:

prodspDataSetTableAdapters.TripNumberTableAdapter ta = new prodspDataSetTableAdapters.TripNumberTableAdapter();

DataTable loadTable = ta.GetData();

因此,在没有实例化TableAdapter且没有填充数据的表(基于TableAdapter的设置)的情况下,您基本上会获得数据库的空模式,其中包含表,列和无值。 新秀错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM