0

我们的数据库中有一个数字值,我们通过数据库获取,然后我们想将它插入另一个值,但我们希望它从Numeric转换为DOUBLE

那么有什么想法可以将我们的 Numeric 变量转换为 double 吗?

编辑

数据库 = Microsoft SQL Server 数据库文件 (SqlClient) (.mdf)

double point = 0;


cn.Open();
point = Convert.ToDouble("select bounty from provider where sirname = '" + globals2.stringena + "' ");
cn.close();

赏金=数字(18,2)

所以想将此值传递给我的点变量。

我得到的错误是

输入字符串的格式不正确。

4

1 回答 1

2
string query = "select bounty from provider where sirname = @name";
double numericToDouble = 0;
using (SqlConnection con = new SqlConnection(YourDB.ConnectionString)
{
    using(SqlCommand cmd = new SqlCommand(query,con))
    {
        cmd.Parameters.AddWithValue(@name,"nameYouNeed");
        try{
          con.Open();
          SqlDataReader reader = cmd.ExecuteReader();
          if (reader.Read())
             numericToDouble = Convert.ToDouble32(reader[0].ToString());
          con.Close();
        }
        catch(SqlError someError)
        {
           MessageBox.Show(someError.Message);
        }
    } 
}

注意: @name 是我们需要在运行时传递给查询的参数。所以我创建了一个使用查询并连接到数据库的 sql 命令。创建新命令时,它会传递@name 的值,如果您看到“cmd.parameters ....”行,然后它会从数据库中读取,并检查它是否成功读取某些内容,如果是,则转换值到字符串,然后加倍。 我假设数字字段是表中的第一列。如果不是,您可以从以下位置更改代码:

numericToDouble = Convert.ToDouble32(reader[0].ToString());

至:

numericToDouble = Convert.ToDouble32(reader["NameOfTheNumericField"].ToString());

希望对你有帮助..

于 2013-07-13T09:54:42.357 回答