【问题标题】:Error C# Database Update Error [duplicate]错误 C# 数据库更新错误 [重复]
【发布时间】:2017-02-22 19:02:25
【问题描述】:

我正在 c# 和 SQL 数据库上编写一个更新语句,对于我的毕业项目,我的一切都非常顺利,直到我遇到一个奇怪的问题,一旦我完成了我的更新语句,并设置了一个 if 条件来捕获错误,味精字符串给了我奇怪的错误

使用未赋值的局部变量

但是下面是代码。

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);
    }
}

有什么帮助吗?谢谢。

【问题讨论】:

  • 您正在使用未分配的局部变量。停止这样做。 (与if (msg == "ok") 一起使用,因为你从不给msg 赋值。当你在上面的if 语句中使用它时,它会被初始化。你不能这样做;你不能使用未初始化的变量。)您是否希望在string msg;if (msg == 之间发生神奇的事情,以某种方式使其等于"ok"? (您的更新语句也不正确。该语法无效。Google c sharp parameterized queries。)
  • 您使用的是什么 IDE?它应该准确地告诉你什么和在哪里。
  • 我在 Insert 语句中使用了它,一切正常,有什么区别,毕竟我还是个初学者.. @KenWhite
  • @Usman 我以前看过这个话题,对我帮助不大..
  • @Crowcoder 对不起,IDE?

标签: c# sql sql-update


【解决方案1】:

您没有在代码中为msg 设置值,因此您无法检查它是否等于"ok",这就是错误的说明。

也许你打算这样做?

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

但这取决于您希望何时为 msg 赋值

【讨论】:

  • 我想说的一点是,无论会发生什么错误,我都会向我展示,我在插入语句中使用它,它运行良好,没有任何错误,我只是想知道..
  • @M.Morgan - 该评论毫无意义......再次阅读我的答案和上面每个人的 cmets。问题是msg,您声明它但从不分配值,并且在您分配值之前,对该实例的任何比较都会引发错误。
  • 哦!真的很抱歉!我现在才注意到!我的错!非常抱歉!感谢您的通知,也非常感谢! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
  • 2018-06-15
  • 2018-08-30
  • 1970-01-01
相关资源
最近更新 更多