C# 返回的数据类型因表中的数据而异
我有一个表,有两列-[security\u role\u name]和security\u role\u cd。security_role_cd的数据类型是security_role表中的smallint 我有以下数据选择逻辑。返回的数据类型因数据场景而异:-C# 返回的数据类型因表中的数据而异,c#,.net,sql-server,ado.net,C#,.net,Sql Server,Ado.net,我有一个表,有两列-[security\u role\u name]和security\u role\u cd。security_role_cd的数据类型是security_role表中的smallint 我有以下数据选择逻辑。返回的数据类型因数据场景而异:- 表中没有数据 表中有一条记录 问题 为什么在这些场景中数据类型会发生变化 如何纠正 注意:目前我正在使用try..catch来满足这种情况 代码 参考: 您可以查看reader.GetFieldType(0)。例如: int i
try..catch
来满足这种情况
代码
参考:
您可以查看
reader.GetFieldType(0)
。例如:
int i;
switch (Type.GetTypeCode(reader.GetFieldType(0)))
{
case TypeCode.Int16: i = reader.GetInt16(0); break;
case TypeCode.Int32: i = reader.GetInt32(0); break;
// TODO: any other cases you need to handle
default: throw new NotSupportedException();
}
或者更简单:
int i = Convert.ToInt32(reader.GetValue(0));
谢谢以下内容也值得使用吗?SqlDbType type=(SqlDbType)(int)reader.GetSchemaTable().Rows[0][“ProviderType”]@Lijo这会增加很多开销。。。读者已经知道了类型。。。我想,只要问问读者这是什么类型的。
int i = Convert.ToInt32(reader.GetValue(0));