【发布时间】:2016-09-16 17:05:23
【问题描述】:
有一个名为 tbTodo 的文本框,它从数据库中获取信息:
SELECT `todo` FROM `user` WHERE `username` LIKE '" + _naam + "'";
有效。现在的问题是,我不知道如何更新数据库中的待办事项列表:如何发送文本框值并覆盖数据库中的值。到目前为止我的代码(这可能是完全错误的):
db_connection();
MySqlCommand cmdRead = new MySqlCommand();
cmdRead.CommandText = "SELECT `todo` FROM `user` WHERE `username` LIKE '" + _naam + "'";
cmdRead.Connection = connect;
MySqlDataReader tdOphalen = cmdRead.ExecuteReader();
if (tdOphalen.Read())
{
tbTodo.Text = tdOphalen.GetString(0);
connect.Close();
return true;
}
else
{
connect.Close();
return false;
}
}
【问题讨论】:
-
好吧,如果你想更新数据库,那么你需要使用
UPDATE命令而不是SELECT命令... -
请查一下Command.Parameters.AddWithValue();
-
首先:不要使用这样的 SQL 查询字符串,除非您希望人们执行 SQL injection 并损害您的数据库;使用prepared statement。其次,您要在数据库中更新什么?我知道这是一个待办事项列表,但您要更新哪些列以及包含哪些信息?
-
@Bwolfing 目前,它只是一个文本框,用于个人项目。我不知道你准备好的陈述是什么意思。我是 sql 新手。对不起,我缺乏知识,但你能解释一下我应该怎么做吗?
-
看看@Filburt 的 SQL 注入、prepared statement 和 Exploits of a Mom 链接,首先了解查询的危险:)