DataTable的Select方法的问题

Dic4000 2010-01-12 02:52:20
下面代码中DataTable中有一列是System.Data.SqlTypes.SqlDateTime类型,想对这列数据进行筛选应该怎么做?

DataTable dt = new DataTable();
dt.Columns.Add("a",typeof(System.Data.SqlTypes.SqlDateTime));
dt.Rows.Add(DateTime.Now);
dt.Rows.Add(DateTime.Now.AddSeconds(1));
dt.Rows.Add(DateTime.Now.AddSeconds(2));
dt.PrimaryKey=new DataColumn[]{dt.Columns["a"]};
string filter = "Convert(a,'System.Data.SqlTypes.SqlDateTime').Value<'" + DateTime.Now.AddSeconds(1).ToString() + "'";//筛选应怎么写?
DataRow[] rows=dt.Select(filter);
...全文
165 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ILOVE_ASPNET 2010-01-12
  • 打赏
  • 举报
回复
up
Dic4000 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wo6522317 的回复:]
C# code
DataTable dt=new DataTable("dtTest");
dt.Columns.Add("value",typeof(System.Data.SqlTypes.SqlDateTime));
dt.Rows.Add(DateTime.Now);
dt.Rows.Add(DateTime.Now.AddDays(1));
dt.Rows.Add(DateTime.Now.AddDays(2));//DataRow[] drs = dt.Select(string.Format("value > #{0}#", new System.Data.SqlTypes.SqlDateTime(DateTime.Now))); DataRow[] drs= dt.Select(string.Format("value > #{0}#", DateTime.Now));
[/Quote]
是一种方法
qldsrx 2010-01-12
  • 打赏
  • 举报
回复
filter 内是不能出现SQL语句的,类似Convert那样的SQL转换语句是不支持的,所以你应该直接比较DateTime类型的值大小。
wo6522317 2010-01-12
  • 打赏
  • 举报
回复

DataTable dt = new DataTable("dtTest");
dt.Columns.Add("value", typeof(System.Data.SqlTypes.SqlDateTime));
dt.Rows.Add(DateTime.Now);
dt.Rows.Add(DateTime.Now.AddDays(1));
dt.Rows.Add(DateTime.Now.AddDays(2));

//DataRow[] drs = dt.Select(string.Format("value > #{0}#", new System.Data.SqlTypes.SqlDateTime(DateTime.Now)));
DataRow[] drs = dt.Select(string.Format("value > #{0}#", DateTime.Now));
Dic4000 2010-01-12
  • 打赏
  • 举报
回复
LoveLife_Go:你改变了列的类型
我想问的是如何对SqlDateTime列进行筛选?
路人乙e 2010-01-12
  • 打赏
  • 举报
回复
a<'2010-1-1'
Dic4000 2010-01-12
  • 打赏
  • 举报
回复
如果是DateTime列类型我会写筛选内容,但是SqlDateTime类型就不会写了。
asharpnet 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lovelife_go 的回复:]
C# codeDataTable dt=new DataTable();
dt.Columns.Add("a",typeof(DateTime));

dt.Rows.Add(DateTime.Now);
dt.Rows.Add(DateTime.Now.AddSeconds(1)?-
[/Quote]
楼上的可以
LoveLife_Go 2010-01-12
  • 打赏
  • 举报
回复
DataTable dt = new DataTable();
dt.Columns.Add("a", typeof(DateTime));//改一下

dt.Rows.Add(DateTime.Now);
dt.Rows.Add(DateTime.Now.AddSeconds(1));
dt.Rows.Add(DateTime.Now.AddSeconds(2));
dt.PrimaryKey = new DataColumn[] { dt.Columns["a"] };

string filter = "a<'" + DateTime.Now.AddSeconds(1).ToString() + "'";//改一下
DataRow[] rows = dt.Select(filter);
LoveLife_Go 2010-01-12
  • 打赏
  • 举报
回复
DataTable dt = new DataTable();
dt.Columns.Add("a", typeof(DateTime));

dt.Rows.Add(DateTime.Now);
dt.Rows.Add(DateTime.Now.AddSeconds(1));
dt.Rows.Add(DateTime.Now.AddSeconds(2));
dt.PrimaryKey = new DataColumn[] { dt.Columns["a"] };

string filter = "a<'" + DateTime.Now.AddSeconds(1).ToString() + "'";//筛选应怎么写? DataRow[] rows = dt.Select(filter);
one2zero 2010-01-12
  • 打赏
  • 举报
回复
想要做筛选 肯定要将 筛选条件 传入 待筛选的内容
平生我自如 2010-01-12
  • 打赏
  • 举报
回复
没有这样做过呢

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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