【问题标题】:Update value database in MySQL using C#使用 C# 更新 MySQL 中的值数据库
【发布时间】:2016-09-22 10:29:53
【问题描述】:

我想更新表 user 中的“todo”,其中值“username”与我的代码 _naam 中的值相同。到目前为止我所拥有的(从我的“读取”命令中复制的):

private bool Todo_updaten(string _todo)
    {
        db_connection();
        MySqlCommand cmdUpdate = new MySqlCommand();
        cmdUpdate.CommandText = "UPDATE `user` SET `todo`=@todo WHERE `username` LIKE '" + _naam + "'";
        cmdUpdate.Parameters.AddWithValue("@todo", _todo);
        cmdUpdate.Connection = connect;
        MySqlDataReader tbupdaten = cmdUpdate.ExecuteReader();
        if (tbupdaten.Read())
        {
            tbTodo.Text = tbupdaten.GetString(0);
            connect.Clone();
            return true;
        }

我的 bool todo_updaten 出现错误,提示:并非所有代码路径都返回值。

【问题讨论】:

  • 在方法末尾添加另一个returnfalse,我想,鉴于你的逻辑。你的 only 返回 if 代码进入块,所以它不是在骗你。
  • 您的return true 声明在您的if (tbupdaten.Read()) 中。一定要在外面返回一些东西。例如else { return false; }

标签: c# mysql winforms


【解决方案1】:

因为您的Todo_updaten 函数的返回类型是bool,所以您总是需要从中返回任何bool 值。目前,只有在满足条件时才会返回 true,否则不会返回任何内容。这是错误的,因此您可以在 else 语句中返回 false 来克服它,或者您的任何自定义逻辑。但请确保您始终从函数返回 bool 值。

if (tbupdaten.Read())
   {
       tbTodo.Text = tbupdaten.GetString(0);
       connect.Clone();
       return true;
   }
   else
   {
       return false;
   }

【讨论】:

    【解决方案2】:

    如果 tbupdaten.Read() 返回 false,您的函数不会返回任何内容,因为您在 if block 中只有一个 return

    此外,在更新数据库时,您应该调用 ExecuteNonQuery 而不是 ExecuteReader

    private bool Todo_updaten(string _todo)
    {
      db_connection();
      MySqlCommand cmdUpdate = new MySqlCommand();
      cmdUpdate.CommandText = "UPDATE `user` SET `todo`=@todo WHERE `username` LIKE @naam";
      cmdUpdate.Parameters.AddWithValue("@todo", _todo);
      cmdUpdate.Parameters.AddWithValue("@naam", _naam);
      cmdUpdate.Connection = connect;
      cmdUpdate.ExecuteNonQuery();
      return true;       
    } 
    

    如果您想检查任何内容,ExecuteNonQuery 还会返回受影响的行数。

    【讨论】:

      猜你喜欢
      • 2021-03-28
      • 1970-01-01
      • 2012-07-22
      • 1970-01-01
      • 2014-04-11
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多