SQL Server INSERT命令不会插入数据

时间:2014-08-29 19:25:19

标签: c# sql sql-server database insert

我想将一些文本框的内容插入到SQL Server数据库中。

这是我使用的代码:

SqlConnection myConn = new SqlConnection(myConnection);
myConn.Open();

SqlCommand InsertCommand = new SqlCommand("INSERT INTO invmgmt.Products (product_id, product_name, product_price, possible_discount, product_in_stock) VALUES ('" + Convert.ToInt32(tbAddProdID.Text) + "','" + tbAddProdName.Text + "','" + Convert.ToDouble(tbAddProdPrice.Text) + "','" + Convert.ToInt32(tbAddPblDiscount.Text) + "','" + Convert.ToInt32(tbAddInStock.Text) + "')");

myConn.Close();

如果我执行该操作,数据库没有任何反应,有人知道该怎么做吗?我已经尝试了其他一些Insert命令,但没有想要工作。

6 个答案:

答案 0 :(得分:8)

您必须将连接与您的命令相关联,然后执行您的查询:

InsertCommand.Connection = conn;
InsertCommand.ExecuteNonQuery();

很少有其他事情:

答案 1 :(得分:1)

将连接添加到您的命令并执行它:

 SqlCommand InsertCommand = new SqlCommand("INSERT INTO invmgmt.Products (product_id, product_name, product_price, possible_discount, product_in_stock) VALUES ('" + Convert.ToInt32(tbAddProdID.Text) + "','" + tbAddProdName.Text + "','" + Convert.ToDouble(tbAddProdPrice.Text) + "','" + Convert.ToInt32(tbAddPblDiscount.Text) + "','" + Convert.ToInt32(tbAddInStock.Text) + "')",myConn);

 InsertCommand.ExecuteNonQuery();

答案 2 :(得分:1)

你错过了:

InsertCommand.ExecuteNonQuery();

答案 3 :(得分:0)

打开连接后尝试以下代码:

string query = ..........;
SqlCommand myCommand = new SqlCommand(query, myConn);
myCommand.ExecuteNonQuery();
myConn.Close();

注意:输入您的查询而不是点。

答案 4 :(得分:0)

ExecuteNonQuery()返回受影响的行数,因此最好检查返回以处理错误情况

Int32 ret = sqlcommand.ExecuteNonQuery();

if(ret< = 0) { enter code here }

答案 5 :(得分:0)

您必须执行查询并在此之后关闭您的连接,如下所示

SqlConnection myConn = new SqlConnection(myConnection);
myConn.Open();

string sql ="YOUR QUERY...";
SqlConnection myConn = new SqlConnection(myConnection);
myConn.Open();
SqlCommand InsertCommand = new SqlCommand(sql,myConn);
InsertCommand.ExecuteNonQuery();
myConn.Close();

或者如果要检查是否执行了查询,请执行此操作。

if(InsertCommand.ExecuteNonQuery()>0){ //some message or function }

返回的值是该语句影响的行数。