2010-10-28 56 views
1

我有一個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

回答

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()將返回受影響的行數。

使用語句將負責妥善處理連接,所以之後,您再也沒有打開的連接。這是因爲SqlConnection實現了IDisposable。

+0

無法找到類型或命名空間名稱'SqlConnection' – Ninad 2010-10-28 09:54:45

+0

使用以下命令添加:using System.Data.SqlClient; – 2010-10-28 09:57:04

+0

你應該引用/導入/使用System.Data.SqlClient。請參閱:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.aspx – Peter 2010-10-28 09:57:46