使用where子句过滤数据表行

Csh*_*arp 3 c# datatable datarow dataset where-clause

我有一个DataTable,我从DataSet中提取.从DataTable,我想使用Where子句返回特定的行.我看了" 如何使用两个变量值从数据表中选择行? "但是我收到错误

"无法将类型'System.Data.DataRow []'隐式转换为'System.Data.DataRow'"

我搜索谷歌,但找不到解决方案.

我的代码是:

mySqlDataAdapter.Fill(myDataSet);

DataTable dtTable = myDataSet.Tables[0];
DataRow dr = dtTable.Select("VendorID = " + Session["VendorId"].ToString());
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Ste*_*eve 15

即使您的查询只选择一行,DataTable 的Select方法也会返回DataRow数组

DataRow[] dr = dtTable.Select("VendorID = " + Session["VendorId"].ToString());
Run Code Online (Sandbox Code Playgroud)

然后,如果你真的只想要一行,你可以很容易地获取预期的行检查数组的长度.在这种情况下,我认为真的不需要花哨的Enumerable扩展方法

if(dr.Length > 0)
{
    string avalue = dr[0]["AColumnName"].ToString();
    ...
}
Run Code Online (Sandbox Code Playgroud)