0

我正在尝试获取在我的访问数据库中保存为 Double 的数据。我的应用程序假设提取存储为双精度(数字 - 数据类型)的数据并将其放在标签中供我查看。我可以通过将其重新标记为文本来做到这一点,但它不适用于双精度。

任何的意见都将会有帮助!下面是我所拥有的,(1) 是我的 Double 数据所在的列。

            str = "Select * from data where loc='" + loc + "'";
            cmd = new OleDbCommand(str, con);
            dr = cmd.ExecuteReader();

            if (dr.Read())
            {
                label33.Text = dr.GetDouble(1);
4

1 回答 1

2

C# 是一种类型化语言,不能将双精度值分配给字符串变量。这应该有效:

label33.Text = dr.GetDouble(1).ToString();

旁注:不要*在 sql 查询中使用。如果 schmema 发生变化,这可能会在未来导致严重的错误。而是命名所有列。

您还可以使用GetOrdinal获取列的索引,然后您可以使用它的名称不易出错:

int dataColIndex = dr.GetOrdinal("DataCol");
double dataValue = dr.GetDouble(dataColIndex);
label33.Text = dataValue.ToString();

您还应该考虑为您的控件提供更有意义的名称;)

于 2013-10-30T10:45:14.793 回答