2014-10-27 112 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);