[英]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.