数据数据类型的SqlDataReader

时间:2013-07-06 08:41:23

标签: c# sql sql-server datagridview sqldatareader

我有这段代码:

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

有没有解决方案?

1 个答案:

答案 0 :(得分:3)

(你自己已经解决了问题,但是我建议如下。)

由于您正在处理SQL Server数据阅读器,请使用GetSqlDecimal代替GetDecimal

  • 它应该表现得更好一些(因为它没有做任何不必要的转换)。
  • 它还可以处理NULL(通过返回的SqlDecimal值的IsNull属性)。