我们的数据库中有一个值,它是我们通过数据库获取的数字,然后我们想将它插入另一个值但我们希望它从 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)
所以想把这个值传递给我的点变量。
我得到的错误是
输入字符串的格式不正确。
答案 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());
希望这会对你有帮助..