asp.net c#代码错误(mysql数据库连接)

asp.net c#代码错误(mysql数据库连接),c#,asp.net,sql,mysql,C#,Asp.net,Sql,Mysql,我的代码是更新数据库中已存在的记录,否则将其作为新记录插入 我的代码如下: protected void Button3_Click(object sender, EventArgs e) { OdbcConnection MyConnection = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=testcase;User=root;Password=root

我的代码是更新数据库中已存在的记录,否则将其作为新记录插入

我的代码如下:

protected void Button3_Click(object sender, EventArgs e)
    {

        OdbcConnection MyConnection = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=testcase;User=root;Password=root;Option=3;");
        MyConnection.Open();
        String MyString = "select fil_no,orderdate from temp_save where fil_no=? and orderdate=?";
        OdbcCommand MyCmd = new OdbcCommand(MyString, MyConnection);
        MyCmd.Parameters.AddWithValue("", HiddenField4.Value);
        MyCmd.Parameters.AddWithValue("", TextBox3.Text);
        using (OdbcDataReader MyReader4 = MyCmd.ExecuteReader())
        {
            //**
            if (MyReader4.Read())
            {

                    String MyString1 = "UPDATE temp_save SET order=? where fil_no=? AND orderdate=?";
                    OdbcCommand MyCmd1 = new OdbcCommand(MyString1, MyConnection);
                    MyCmd1.Parameters.AddWithValue("", Editor1.Content.ToString());
                    MyCmd1.Parameters.AddWithValue("", HiddenField1.Value);
                    MyCmd1.Parameters.AddWithValue("", TextBox3.Text);
                    MyCmd1.ExecuteNonQuery();
                }



            else
            {

                // set the SQL string
                String strSQL = "INSERT INTO temp_save (fil_no,order,orderdate) " +
                "VALUES (?,?,?)";

                // Create the Command and set its properties
                OdbcCommand objCmd = new OdbcCommand(strSQL, MyConnection);
                objCmd.Parameters.AddWithValue("", HiddenField4.Value);
                objCmd.Parameters.AddWithValue("", Editor1.Content.ToString());
                objCmd.Parameters.AddWithValue("", TextBox3.Text);

                // execute the command
                objCmd.ExecuteNonQuery();



            }


        }
    }
我得到的错误如下:

ERROR [42000] [MySQL][ODBC 3.51 Driver][mysqld-5.1.51-community]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 'order,orderdate) VALUES ('04050040272009','      &' at line 1
表temp_save中字段的数据类型为:

fil_no-->INT(15)( to store a 15 digit number)
order-->LONGTEXT(to store contents from HTMLEditor(ajax control))
orderdate-->DATE(to store date)

请帮我解决我的错误。

订单是保留字。有关保留字的完整列表,请查看

你可以用背面的记号把它包起来。 (在我的键盘上,~键下有一个回勾)


顺序是一个保留字。有关保留字的完整列表,请查看

你可以用背面的记号把它包起来。 (在我的键盘上,~键下有一个回勾)


我会试试括号,以防。。。这就是它在ms sql server中的工作方式。。在mySql中可能是相同的

String MyString1 = "UPDATE temp_save SET [order]=? where fill .... ";

我会试试括号,以防。。。这就是它在ms sql server中的工作方式。。在mySql中可能是相同的

String MyString1 = "UPDATE temp_save SET [order]=? where fill .... ";

你知道mysql支持
insert。。。在重复密钥更新时
?您是否知道mysql支持插入。。。在重复密钥更新时?