C#到MySqlDB更新

时间:2018-11-01 10:32:35

标签: c# mysql database

我目前正在为朋友做一个小例子,以记录雇主的工作时间。因此,我想更新一个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值不变

1 个答案:

答案 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);