C# 如何在C中从dataview的筛选值中获取值?
我有一个过滤数据视图,我必须从中提取值。问题是,当我这样做时,我也从未过滤的数据中获取值C# 如何在C中从dataview的筛选值中获取值?,c#,c#-4.0,datatable,dataview,C#,C# 4.0,Datatable,Dataview,我有一个过滤数据视图,我必须从中提取值。问题是,当我这样做时,我也从未过滤的数据中获取值 dv1.RowFilter = "collegeno=" +i; for(int k=1;k<dv1.count;k++) { //inserting data in database; there is column in database table; I am inserting into it; dv1.Table.Rows[k]["roomno"]); } 例如:D
dv1.RowFilter = "collegeno=" +i;
for(int k=1;k<dv1.count;k++)
{
//inserting data in database; there is column in database table; I am inserting into it;
dv1.Table.Rows[k]["roomno"]);
}
例如:DataView中的总行数为200;
当i=1时,我有30条记录;
如果我提供k=4,那么我应该从这30条记录中得到第四行。
但是我得到了200条记录中的第4行。您编写的代码正在使用代码块dv1.table访问主表 而不是像这样尝试
dv1[k]["roomno"]
此代码在DataView上工作,过滤器适用于DataView
如果使用DataView.Table,则它将访问未筛选的结果
参考链接:您编写的代码正在使用代码块dv1.table访问主表 而不是像这样尝试
dv1[k]["roomno"]
此代码在DataView上工作,过滤器适用于DataView
如果使用DataView.Table,则它将访问未筛选的结果
参考链接:
如果我提供k=4,那么我应该从这30条记录中得到第四行。
但我得到了200张唱片中的第四排
这是因为您查询的是表,而不是视图。相反,您应该这样做:
dv1.RowFilter = "collegeno=" +i;
object value = dv1[k]["roomno"];
根据需要,您可能希望使用DataTable。选择方法而不是DataView:
如果我提供k=4,那么我应该从这30条记录中得到第四行。
但我得到了200张唱片中的第四排
这是因为您查询的是表,而不是视图。相反,您应该这样做:
dv1.RowFilter = "collegeno=" +i;
object value = dv1[k]["roomno"];
根据需要,您可能希望使用DataTable。选择方法而不是DataView:
请添加更多代码!你能详细解释一下吗RowFilter@user3116746更新的问题代码语法错误..请添加更多代码!你能详细解释一下吗RowFilter@user3116746更新的问题代码语法错误。实际上,这仍然无效,因为索引器访问不是语句,但OP的代码也无效。实际上,这仍然无效,因为索引器访问不是语句,但是OP的代码也无效…请告诉我,Datatable.select还是Dataview性能更好???@user3116746,我想说Dataview快一点,因为它没有具体化过滤的行,但这只是一个猜测;如果你想确定的话,你应该做一些分析。无论如何,除非表中有很多数据,否则差异可能很小;请使用最适合您需要的一个。请告诉我,哪个Datatable的性能更好。select还是Dataview???@user3116746,我想说Dataview速度更快,因为它没有具体化过滤的行,但这只是一个猜测;如果你想确定的话,你应该做一些分析。无论如何,除非表中有很多数据,否则差异可能很小;使用最适合你需要的。