【发布时间】:2015-07-07 13:11:16
【问题描述】:
我可以在 C# 中使用 DataTable.Select(filterStatement); 执行此操作吗?
或者我应该使用 Linq?
我有一个 SQL 查询,它返回一个包含 [Username] 和 [LastUpdated] 两列的 DataTable dt2。
我想从 [LastUpdated] 列中获取一个字符串,其中 [Username] 列等于一个字符串。
以防万一,这两种数据类型在 SQL 表中都设置为 varchar(50)。
我会发布一张图片,但我还不能,第一次发布,数据表只是
用户名|上次更新时间
....admin2 | 2015-04-27...
在这种情况下,如果我能得到 [Username] = 'admin2' 的第二列的值。
我在 C# 中尝试了以下内容:
string timestamp = "";
DataRow[] dt2result = dt2.Select("Username = 'admin2'");
timestamp = dt2result[1].ToString();
我明白了
System.IndexOutOfRangeException: 索引超出数组范围
我尝试只使用不带括号 [] 的 DataRow dt2result = dt2.Select("Username = 'admin2'");,但我明白了
“无法将类型'Sytem.Data.DataRow[]'隐式转换为'System.Data.DataRow'”
我尝试过不同的索引,例如 dt2result[0] 和 dt2result[1][0] 等,以及 dt2result.GetValue(0)
我知道这是一个基本问题,但请全面回答!
提前致谢!
【问题讨论】:
-
为什么要使用 varchar 作为日期时间字段? (最后更新)
-
因为我是 SQL 的新手,它是我尝试的第一个数据类型,它会隐含地采用我从 C# 传递它时的格式中的“DateTime.Now”值跨度>
-
尝试在sql中使用datetime字段,并在c#中将其转换为DateTime
-
请改用 datetime 或 datetime2,如果您是新手,我建议您改用 Entity Framework。或 SqlDataReader。不要使用数据表/数据集/Sqladapter。
-
这是一种可以加快页面加载速度的做法吗?
标签: c# sql linq select datatable