繁体   English   中英

在Sql Server中插入Double

[英]Insert Double In Sql Server

我正在使用SQL Server 2008和C#。 我正在声明一个double类型的变量,我想将它插入我的数据库中。 我有这个错误:

数据类型转换错误varchar为numeric。

我如何使用C#在SQL Server中插入double类型的值?

这是代码:

double variable = 13.2;

con.Open();
cmd=con.CreateCommand();
cmd.CommandText = "insert into etudient (IDetudient, [nom etudient], value) values('" + Convert.ToInt16( text_id.Text) + "' , '" + text_name.Text + "','" + variable + "')";
cmd.ExecuteNonQuery();
con.Close();
 MessageBox.Show("success");

删除变量前后的变量......

如果你把变量放在'之间,你说它是文本,那就是错误说它无法将varchar转换为数字的原因。

因为, 变量double类型而不是字符串,所以你应该以这种格式插入变量

" + variable + "而不是'" + variable + "'

此外,您的Insert查询如下所示:

cmd.CommandText = "insert into etudient (IDetudient, [nom etudient], value)
    values('" + Convert.ToInt16( text_id.Text) + "' , '" + text_name.Text + "'," + variable + " )";

事实上,建议使用参数化查询,因为它可以防止SQL注入攻击

using (var con = new SqlConnection(connectionString))
{
    con.Open();

    using (var cmd = new SqlCommand(
        @"INSERT INTO etudient (IDetudient, [nom etudient], value)
          VALUES (@ID, @Name, @Variable)", con))
    {
        cmd.Parameters.AddWithValue("@ID", text_id.Text);
        cmd.Parameters.AddWithValue("@Name", text_name.Text);
        cmd.Parameters.AddWithValue("@Variable", variable);
        cmd.ExecuteNonQuery();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM