无法将类型 'System.Int16' 的对象强制转换为类型 'System.String' - AsEnumerable()。词典


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 ?

不能将int强制转换为字符串,但可以获得int:

的字符串表示形式。
dtUsers= dsmyTable .Tables[0].AsEnumerable().
         ToDictionary(row => row.Field<short>("UserId").ToString());

但是,您应该仅为显示目的而这样做。一般来说,您会希望尽可能长时间地保留整型,因为处理整型要比到处从字符串解析它容易得多。

仅使用ToString()方法。当然,这只是为了表示您的smallint专栏。

dtUsers= dsmyTable .Tables[0].AsEnumerable().
         ToDictionary(row => row.Field<short>("UserId").ToString());

相关内容

  • 没有找到相关文章

最新更新