我目前正在为朋友做一个小例子,以记录雇主的工作时间。因此,我想更新一个MySQL数据库的记录。
与数据库的连接已经完成并且正在测试中,但是,我无法管理(是的,我在Google上进行了大量搜索),实际上无法获取数据库中更改的值。这是我目前的尝试,给出雇主开始工作的当前时间:
void main(string[] args)
{
// Die Verbindung zur DB entnehmen.
MySqlConnection conn = DBUtils.GetDBConnection();
conn.Open();
try
{
// Der Befehl UPDATE.
string sql = "UPDATE user SET lastlogin = lastlogin WHERE user username = srademacher";
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
cmd.CommandText = sql;
MySqlParameter lastlogin = new MySqlParameter("@lastlogin", SqlDbType.DateTime);
lastlogin.Value = DateTime.Now;
cmd.Parameters.Add(lastlogin);
// Command durchführen
int rowCount = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine("Error: " + e);
}
finally
{
conn.Close();
conn.Dispose();
conn = null;
}
Console.Read();
MessageBox.Show("Die Arbeit wurde um " + DateTime.Now + " aufgenommen");
}
我想您可以在脚本编写方面称我为“菜鸟”,但我很乐意得到一些改进建议:-)谢谢您的想法。
编辑:启动代码符合的应用程序没有任何问题,只是DB中的DateTime值不变
答案 0 :(得分:1)
您的更新语句的语法错误,WHERE user username = srademacher
。然后,您添加MySqlParameter
,但不在sql中使用它。
将sql
更改为
string sql = "UPDATE user SET lastlogin = @lastlogin WHERE username = @username";
并添加
MySqlParameter username = new MySqlParameter("@username", SqlDbType.NVarChar);
username.Value = "srademacher";
cmd.Parameters.Add(username);