簡體   English   中英

SQL查詢中的更新不起作用C#

[英]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,您應該閱讀以下內容:

http://www.csharp-station.com/Tutorial/AdoDotNet/lesson06

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM