我想将一些文本框的内容插入到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
命令,但没有想要工作。
答案 0 :(得分:8)
您必须将连接与您的命令相关联,然后执行您的查询:
InsertCommand.Connection = conn;
InsertCommand.ExecuteNonQuery();
很少有其他事情:
using
语句中包含您的连接和命令对象。 答案 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 }
返回的值是该语句影响的行数。