插入查询语法问题

时间:2010-10-28 09:41:01

标签: asp.net sql mysql

我有一个SQL查询,如下所示

  String S = Editor1.Content.ToString();
     Response.Write(S);   
    string sql = "insert into testcase.ishan(nmae,orders) VALUES ('9',@S)";
   OdbcCommand cmd = new OdbcCommand(sql, myConn);
            cmd.Parameters.AddWithValue("@S", S); 
            cmd.ExecuteNonQuery();

错误:Column 'orders' cannot be null at System.Data.Odbc.OdbcConnection.HandleError

1 个答案:

答案 0 :(得分:3)

最好使用类似的东西:

var sqlCommandText = "insert into testcase.ishan(nmae,orders) VALUES ('9', @S)";
using (var connection = new SqlConnection())
{
    using (var command = new SqlCommand(sqlCommandText , connection))
    {
        command.Parameters.AddWithValue("@S", S);
        command.ExecuteNonQuery();
    }
}

参数的使用会阻止SQL injection。我相信安德鲁斯解决方案没有。

如果需要,ExecuteNonQuery()将返回受影响的行数。

using语句将负责正确处理连接,因此之后您再也没有打开连接。这是因为SqlConnection实现了IDisposable。