Dictionary<string, DataRow> dtUsers;
using (DataSet dsmyTable = DbConnection.db_Select_Query
("use myDb select * from myTable"))
{
dtUsers= dsmyTable .Tables[0].AsEnumerable().
ToDictionary(row => row.Field<string>("UserId"));
}
好的UserId是smallint
列
但我想把它作为字符串。
我应该如何修改上面的linq?
答案 0 :(得分:6)
您不能将int
转换为字符串,但您可以获取int的字符串表示形式:
dtUsers= dsmyTable .Tables[0].AsEnumerable().
ToDictionary(row => row.Field<short>("UserId").ToString());
但是,您只应将其用于显示目的。一般来说,你需要尽可能长时间地保持int,因为处理int更容易,而不是从字符串中解析它。
答案 1 :(得分:1)
只需使用ToString()
方法即可。当然,这仅适用于您的smallint
列。
dtUsers= dsmyTable .Tables[0].AsEnumerable().
ToDictionary(row => row.Field<short>("UserId").ToString());