2017-02-22 136 views
-1

我正在編程一個關於c#和SQL數據庫的更新語句,對於我的畢業設計項目,我有一切都很順利,直到我面臨一個奇怪的問題,一旦我完成我的更新語句,並設置一個if條件捕獲錯誤,msg字符串是給我奇怪的錯誤錯誤C#數據庫更新錯誤

使用未分配的局部變量

但是這裏的下面的代碼。

string msg; 
if (MessageBox.Show("Are you sure you want to update book info?", "Updating", MessageBoxButtons.YesNo) == DialogResult.Yes) 
{ 
    n.RunDml("Update into Book Values (" + txtID.Text + ",'" + txtName.Text + "','" + txtCond.Text + "','" + txtQuant.Text + "','" + txtSect.Text + "')"); 
    if (msg == "ok") 
    { 
     MessageBox.Show("Updating successfully done! ", "Updating"); 
    } 
    else 
    { 
     MessageBox.Show(msg); 
    } 
} 

有幫助嗎?謝謝。

+1

您正在使用的未分配的局部變量上。停止這樣做。 (使用'if(msg ==「ok」)',因爲你永遠不會爲'msg'賦值,當你在上面的if語句中使用它的時候它是單元化的,你不能這樣做; )你希望在'string msg;'和'if(msg =='這會使它等於'「ok」''之間發生什麼?「)(你的更新語句也是不正確的。這個語法無效。Google * c sharp參數化查詢*。) –

+0

你在用什麼IDE?它應該告訴你到底在什麼地方。 – Crowcoder

+0

我在Insert語句中使用它,它沒關係,有什麼區別,我仍然畢竟是初學者.. @KenWhite –

回答

1

不會在代碼中的哪個位置爲msg設置一個值,因此您無法檢查其值是否等於"ok",即錯誤的說明。

也許你打算這樣做?

msg = n.RunDml("Update into Book Values (" + txtID.Text + ",'" + txtName.Text + "','" + txtCond.Text + "','" + txtQuant.Text + "','" + txtSect.Text + "')"); 

但是,這取決於當你期待值賦給msg

+0

我想說的一點,就是向我表明我會發生什麼樣的錯誤,我在插入語句中使用它,並且它沒有任何錯誤就很好,我只是想知道.. –

+0

@ M.Morgan - 那個評論沒有任何意義...閱讀我的答案和每個人的意見再次。問題是'msg',你聲明它,但從不分配一個值,直到你分配一個值,任何比較該實例都會引發錯誤。 – Igor

+0

哦!真的很抱歉!我只是注意到了!我的錯!非常抱歉!感謝您的通知,非常感謝! :) –