[英]Update in SQL query doesn't work c#
我想更新我的SQL Server表中的數據,這里的代碼在我的其他項目中可以正常工作,但是當我將其復制到其他項目中后,它不再起作用。
這是我的代碼:
con.Open();
float prc = float.Parse(textBox4.Text);
int sum = int.Parse(textBox3.Text);
string sql = "UPDATE LIB_INVENTORY set PRICE=(" + prc + "), QUANTITY=([QUANTITY]) +
(" + sum + "), BSTATUS='" + textBox5.Text + "' where BOOKNAME='"
+ textBox1.Text + "' and PUBLISHER='" + textBox2.Text + "'";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("One item updated updated!");
它運行成功,但是當我檢查表時,沒有數據已成功更新。 我檢查了我的代碼,但實際上與其他項目一樣正常。 有人可以幫我嗎?
如果沒有錯誤,則表示where子句未實現。 我認為您輸入的內容如下:
where BOOKNAME='"<spaace>+ textBox1.Text+<spaace>"' and PUBLISHER='"<spaace>+ textBox2.Text +<spaace>"'";
因此,只需擦除空間並嘗試一下即可。
string sql = "UPDATE LIB_INVENTORY set PRICE=("+prc+"), QUANTITY= ([QUANTITY]) + ("+sum+"), BSTATUS='"+textBox5.Text+"' where BOOKNAME='"+textBox1.Text+"' and PUBLISHER='"+textBox2.Text+"'";
如建議的那樣,您實際上應該對SQL查詢使用參數。 在此之上執行以下操作:
SqlCommand cmd = new SqlCommand(sql, con);
int nbrUpdates = cmd.ExecuteNonQuery();
con.Close();
if (nbrUpdates>0) MessageBox.Show("One item updated updated!");
else MessageBox.Show(sql);
然后,您可以檢查sql中的字符串是否正確。 另外,手動登錄到數據庫,並檢查是否確實存在要更新的數據。 如果是這樣,並且更新仍然不起作用,則使您的代碼對要更新的數據執行一條select語句。 您可能仍在訪問錯誤的數據庫。
現在開始使用帶有參數的sql,您應該閱讀以下內容:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.