2017-02-22 139 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

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