Iva*_*ono 1 c# sql-server-2012
我有一个包含2列的表(string&int).int列的当前值是-1.
使用SQLDataReader我正在读取此表中的行:
public class MyObject
{
public string Name;
public long Number;
}
using (SqlDataReader dataReader = command.ExecuteReader())
{
MyObject o = new MyObject()
while (dataReader.Read())
{
o.Name= dataReader.GetString(0);
o.Number = dataReader.GetInt64(1);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我正在InvalidCastException阅读Number专栏文章.我在这里错过了什么?
SqlDataReader.GetInt64的备注部分指出:
没有进行转换; 因此,检索的数据必须已经是64位有符号整数.
顺便说一句:如果您的值可以为空,请不要忘记调用IsDBNUll
您确定检索到的数据是数据库中的bigint吗?如果是int或nchar/nvarchar,则应使用相应的函数并将其转换或解析为System.Int64
有人建议提高代码的健壮性
| 归档时间: |
|
| 查看次数: |
3013 次 |
| 最近记录: |