用于数字数据类型的SqlDataReader

本文关键字:SqlDataReader 数据类型 数字 用于 | 更新日期: 2023-09-27 18:21:11

我有这个代码:

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阅读它,但它也不起作用。

有什么解决办法吗?

用于数字数据类型的SqlDataReader

(您自己已经解决了问题,但让我提出以下建议。)

由于您正在处理SQL Server数据读取器,请使用GetSqlDecimal而不是GetDecimal:

  • 它的性能应该会好一点(因为它不会进行任何不必要的转换)
  • 它还可以处理NULL(通过返回的SqlDecimal值的IsNull属性)