C#从数字到双

时间:2013-07-13 09:06:14

标签: c# c#-4.0

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

所以我们怎样才能将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();

bounty =数字(18,2)

所以想把这个值传递给我的点变量。

我得到的错误是

  

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

1 个答案:

答案 0 :(得分: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命令。 当新命令创建时,如果您看到“cmd.parameters ....”行,则传递@name的值。 之后它从DB读取,并检查它是否成功读取了一些东西,如果是这样,它将值转换为字符串然后再转换为double。 我假设数字字段是表格中的第一列。 如果不是,您可以更改代码FROM:

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

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

希望这会对你有帮助..