sqldatareader出错

时间:2016-02-24 09:57:23

标签: asp.net sql-server

我试图获取所有列的列长度。该查询在sql管理工作室中工作但是当我在VS中的代码中运行它时,我得到一条异常消息,说“指定的无效”,我的代码是:

__NSCFString

2 个答案:

答案 0 :(得分:0)

使用GetInt16代替GetInt32

colLength[val] = r.GetInt16(val);

因为type of this column is smallint和.NET对应的是Int16

如果演员表无效,

SqlDataReader.GetInt32会抛出此异常。

答案 1 :(得分:0)

抛出此异常,因为SQL服务器未返回整数(实际上,使用聚合函数时不确定返回哪种数据类型)。 尝试更强大的东西,比如这样 colLength

  

colLength [val] = Convert.ToInt32(r [" max_length"])