1

我有这个代码:

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

有什么解决办法吗?

4

1 回答 1

3

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

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

  • 它的性能应该会好一些(因为它不会进行任何不必要的转换)。
  • 它还可以处理NULL(通过IsNull返回SqlDecimal值的属性)。
于 2013-07-06T09:25:22.473 回答