2014-10-27 173 views
-3
SqlConnection connection1 = new SqlConnection(Properties.Settings.Default.KalenderDBconnect); 

SqlCommand insertCommand = new SqlCommand(
    "INSERT into KalenderDB values ('" + tb_name + "','" + tb_Ort + "','" + tb_Event + "','" + tb_Notiz + "','" + teilgenommen + "','" + date + "')"); 

connection1.Open(); 
insertCommand.ExecuteNonQuery(); 
connection1.Close(); 

有人可以說,爲什麼insertCommand.ExecuteNonQuery()不起作用?我找不到問題。SQL插入C語句#

+9

*你*告訴我們*如何*它不首先工作?這會給我們一個更好的起點來幫助你。此外,它看起來像你很容易SQL注入。 – tnw 2014-10-27 18:13:20

+3

我建議你爲初學者做一些事情,圍繞一個'using(){}'包裝SQL連接和SQL命令代碼,同樣改變insertCommand來使用Parameters,也圍繞一個try {} catch包裝ExecuteNonQuery(SqlException sqlEx){}' – MethodMan 2014-10-27 18:17:09

回答

8

您的連接和命令沒有鏈接在一起。

嘗試類似如下:

connection1.Open(); 
insertCommand.Connection = connection1; 
insertCommand.ExecuteNonQuery(); 
connection1.Close(); 

此外,有人對你的問題發表了評論,這是容易受到SQL注入。你應該使用參數。

Here's some MSDN documentation on parameters.

+0

我忘了提及,我不覺得值得再次編輯我的評論,您還可以將連接添加到'SqlCommand'對象的一個​​重載構造函數中。另外,強烈建議在整個事物中添加一個try/catch塊。 – Cameron 2014-10-27 18:23:41

0

的SqlCommand採取2個參數

  1. 查詢
  2. 連接名稱

    的SqlCommand objSql =新的SqlCommand( 「您的查詢」,ObjectSqlConnection);