//SqlServer
IDataReader reader=value;
int index = reader.GetOrdinal("columnName");//此列数据库类型为numeric(38,4) 值为1
if (!reader.IsDBNull(index))
return (int)reader.GetInt32(index);//这里转换为什么会报错?指定的类型转换无效//如何才能做到数据库无关?用Convert.Int32(reader["columnName"])性能有影响吗?
IDataReader reader=value;
int index = reader.GetOrdinal("columnName");//此列数据库类型为numeric(38,4) 值为1
if (!reader.IsDBNull(index))
return (int)reader.GetInt32(index);//这里转换为什么会报错?指定的类型转换无效//如何才能做到数据库无关?用Convert.Int32(reader["columnName"])性能有影响吗?
int index = reader.GetOrdinal("columnName");//此列数据库类型为numeric(38,4) 值为1
if (!reader.IsDBNull(index))
return (int)(decimal)reader.GetInt32(index);//
有个网站 能查出任何QQ都进了什么QQ群 他的数据是自己计算的还是数据库里的?? 如果是数据库 那他是从哪下载的呢? http://www.sjzwan.com/qun.aspx 这是net写的 你们看看 知道的M我
IDataReader reader=value;
int index = reader.GetOrdinal("columnName");//此列数据库类型为numeric(38,4) 值为1
if (!reader.IsDBNull(index))
return Convert.toInt32(reader.GetInt32(index));//这里转换为什么会报错?指定的类型转换无效
这个应该不会影响效能的
return reader.GetDouble(index);
//返回double型
int index = reader.GetOrdinal("columnName");//此列数据库类型为numeric(38,4) 值为1
if (!reader.IsDBNull(index))
return (int)(decimal)reader.GetInt32(index);//这里报错啊哥们
(int)(decimal)reader.GetInt32(index)还是报错的,我知道解决方法,我不知道为什么会跟数据库类型绑定?
应为你的字段是numeric(38,4)对应的是Decimal类型的,所以Reader.GetInt32(index)这样就会报错
那为什么Convert.Int32(reader["columnName"])这样就可以了?
decimal能直接通过(int)或convert.Int32转换成int类型
GetInt32()返回的是整型,这就要求该字段的值必须是整形,如果是其他类型或者空,则会引发异常