如何在SQL Server 2008中将数据从表单保存到表

时间:2013-02-21 09:47:58

标签: c# sql-server visual-studio-2010

我正在开发一个项目,我必须将表单中的值插入到SQL Server 2008表中。

插入了一个值,即许可证号,但类别列在数据库中为空。我正在使用的代码是:

SqlCommand qry = new SqlCommand(
"INSERT INTO licnscatagory(license_number, catagory) 
 VALUES('"+ license_numberTextBox.Text +"','"+ catagoryComboBox.Text +"')", conn;
qry.ExecuteNonQuery();

在数据库中,license_number的数据类型为numericcategory的数据类型为varchar(50)

3 个答案:

答案 0 :(得分:3)

使用此代码

SqlCommand qry = new SqlCommand(
     "INSERT INTO licnscatagory(license_number,catagory) 
     VALUES('"+ license_numberTextBox.Text +"','"+ catagoryComboBox.SelectedValue+"')", conn;
     qry.ExecuteNonQuery();

答案 1 :(得分:2)

您的解决方案容易受到SQL注入攻击。想象一下,用户在license_numberTextBox中键入以下内容。

“); DROP TABLE licnscatagory;

除此之外,你的问题是关于什么是数字的单引号。在ADO.NET中执行此类插入或任何SQL查询的正确方法是使用参数。请参阅以下内容:

        SqlCommand qry = new SqlCommand("INSERT INTO licnscatagory (license_number, category) VALUES (@licenseNumber, @category)", conn);
        qry.Parameters.AddWithValue("licenseNumber", Convert.ToDecimal(license_numberTextBox.Text));
        qry.Parameters.AddWithValue("category", catagoryComboBox.Text);
        qry.ExecuteNonQuery();

答案 2 :(得分:1)

使用此代码..

 SqlCommand qry = new SqlCommand(
 "INSERT INTO licnscatagory(license_number,catagory) 
 VALUES('"+ license_numberTextBox.Text +"','"+ catagoryComboBox.SelectedItem.Text +"')", conn;
 qry.ExecuteNonQuery();