我试图获取所有列的列长度。该查询在sql管理工作室中工作但是当我在VS中的代码中运行它时,我得到一条异常消息,说“指定的无效”,我的代码是:
__NSCFString
答案 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"])