DataTable Select()筛选问题

tinranqi 2011-12-30 09:43:44

DataRow[] drList;
if (!string.IsNullOrEmpty(ddl_site.SelectedValue))
{
drList = ds.Tables[0].Select("DEPT='" + ddl_site.SelectedValue + "'");
}
if (!string.IsNullOrEmpty(ddl_location.SelectedValue))
{

}


有两个dropdownlist筛选条件
如果dropdownlist不为空,进行筛选
问题是DataTable Select()筛选一次后结果是datarow类型,无法再次进行筛选,急救!!
...全文
231 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdchongchong 2011-12-30
  • 打赏
  • 举报
回复
我没更好的方法了
tinranqi 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cdchongchong 的回复:]
不用linq的方法

C# code
DataTable dt = ds.Tables[0].Copy();
dt.Clear();

dt.Rows.Add(drList[0].ItemArray);
[/Quote]
放到datatable要循环把?
cdchongchong 2011-12-30
  • 打赏
  • 举报
回复
不用linq的方法
DataTable dt = ds.Tables[0].Copy();
dt.Clear();

dt.Rows.Add(drList[0].ItemArray);
tinranqi 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 q107770540 的回复:]
DataRow[] drList;
if (!string.IsNullOrEmpty(ddl_site.SelectedValue))
{

drList = ds.Tables[0].AsEnumerable()
.Where(d=>d.Field<string>("DEPT)== ddl_site.SelectedValue);
}
if (!string.IsNullOrEm……
[/Quote]
Lambel表达式懂一点,看这个有点疑问,如果
if (!string.IsNullOrEmpty(ddl_site.SelectedValue))
{

drList = ds.Tables[0].AsEnumerable()
.Where(d=>d.Field<string>("DEPT)== ddl_site.SelectedValue);
}没执行
if (!string.IsNullOrEmpty(ddl_location.SelectedValue))
{
drList =drList.Where(d=>d.Field<string>("DEPT)== ddl_location.SelectedValue);

}这个执行的话,结果是不是有问题
q107770540 2011-12-30
  • 打赏
  • 举报
回复
DataRow[] drList;
if (!string.IsNullOrEmpty(ddl_site.SelectedValue))
{

drList = ds.Tables[0].AsEnumerable()
.Where(d=>d.Field<string>("DEPT)== ddl_site.SelectedValue);
}
if (!string.IsNullOrEmpty(ddl_location.SelectedValue))
{
drList =drList.Where(d=>d.Field<string>("DEPT)== ddl_location.SelectedValue);

}


囧~~~
Icedmilk 2011-12-30
  • 打赏
  • 举报
回复
返回的是DataRow[],所以可以使用linq继续查询,使用linq的Where方法:

DataTable dt = new DataTable();
dt.Select(条件).Where(row => Predict(row));

Predict是筛选条件,可以直接内联写进去

这样可以使先任意数量条件的查询

DataTable dt = new DataTable();
dt.Select(条件).Where(row => Predict1(row) && Predict2(row) && Predict3(row) && ...);

q107770540 2011-12-30
  • 打赏
  • 举报
回复
DataRow[] drList;
if (!string.IsNullOrEmpty(ddl_site.SelectedValue))
{

drList = ds.Tables[0].AsEnumerable()
.Select(d=>d.Field<string>("DEPT)== ddl_site.SelectedValue);
}
if (!string.IsNullOrEmpty(ddl_location.SelectedValue))
{
drList =drList.Select(d=>d.Field<string>("DEPT)== ddl_location.SelectedValue);

}
jun471537173 2011-12-30
  • 打赏
  • 举报
回复
DataTable selectedDt = ds.Tables[0].Clone();
foreach(DataRow row in drList)
{
selectedDt.Rows.Add(row);
}
hhh305743261 2011-12-30
  • 打赏
  • 举报
回复
DataSet ds = new DataSet();
ds.Merge(dt.select(...));

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧