我有这个代码:
public void nactiData()
{
SqlCommand cm = new SqlCommand("SELECT * FROM zajezd WHERE akce="+nc_zajezd_vyber, con);
con.Open();
SqlDataReader reader = cm.ExecuteReader();
if (reader.Read())
{
zpocdnu.Text = reader.GetInt32(31).ToString();
zcena3.Text = reader.GetDecimal(6).ToString();
}
con.Close();
}
问题是它不读取zcena3
,因为表中的数据类型是numeric
。
在微软的网站上写着我应该用GetDecimal
阅读它,但它也不起作用。
有什么解决办法吗?
(您自己已经解决了问题,但让我提出以下建议。)
由于您正在处理SQL Server数据读取器,请使用GetSqlDecimal
而不是GetDecimal
:
- 它的性能应该会好一点(因为它不会进行任何不必要的转换)
- 它还可以处理
NULL
(通过返回的SqlDecimal
值的IsNull
属性)