使用c#更新MySQL中的值数据库
本文关键字:数据库 MySQL 更新 使用 | 更新日期: 2023-09-27 18:08:29
我想更新表user中的"todo",其中值"username"与我的代码_naam中的值相同。到目前为止,我所做的(有点像从我的"read"命令复制的):
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上得到一个错误,它说:不是所有的代码路径都返回值。
因为你的Todo_updaten
函数的返回类型是bool
,所以你总是需要从它返回任何bool
值。目前,只有当条件满足时才返回true,但如果不满足则不返回任何内容。这是错误的,所以你可以在else语句中返回false来克服它,或者任何你的自定义逻辑。但是要确保始终从函数返回boo
1值。
if (tbupdaten.Read())
{
tbTodo.Text = tbupdaten.GetString(0);
connect.Clone();
return true;
}
else
{
return false;
}
如果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
还返回受影响的行数。