Search code examples
c#mysqllogfiles

Script throws MySqlException with syntax error message


I want to save the system log in MySQL database and this is my code

EventRecord record;
while ((record = reader.ReadEvent()) != null)
{
    using (record)
    {
        Console.WriteLine("{0} {1}: {2} : {3}   {4}", record.TimeCreated, record.LevelDisplayName, record.FormatDescription(), record.Id, record.LogName);
        var time = record.TimeCreated;
        String Displayname = record.LevelDisplayName;
        String Description = record.FormatDescription();
        String log_name = record.LogName;
        int id = record.Id;

          string server;
          string database;
          string uid;
          string password;

        MySqlConnection conn;
        server = "localhost";
        database = "logfile";
        uid = "root";
        password = " ";

        string connetionString;
        connetionString = "SERVER=" + server + ";" + "DATABASE=" +database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";SSL Mode=none;";
        conn = new MySqlConnection(connetionString);
        string insertQuery = "insert into syslog (Time,Record_d,log_name,Display_Name,Description)values (@ time,@id,@log_name,@Displayname,@Description)";
        conn.Open();
        MySqlCommand cmd = new MySqlCommand(insertQuery, conn);
            cmd.Parameters.AddWithValue("@time", record.TimeCreated);
            cmd.Parameters.AddWithValue("@id", record.Id);
            cmd.Parameters.AddWithValue("@log_name", record.LogName);
            cmd.Parameters.AddWithValue("@Displayname", record.LevelDisplayName);
            cmd.Parameters.AddWithValue("@Description", record.FormatDescription());
            cmd.ExecuteNonQuery();
            conn.Close();

My script end with the following error:

MySql.Data.MySqlClient.MySqlException: 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's success status was true. The last boot's success status was true.')' at line 1'


Solution

  • Remove space of @ time and add space before "values", that should do the trick