Link to home
Start Free TrialLog in
Avatar of flynny
flynnyFlag for United Kingdom of Great Britain and Northern Ireland

asked on

error in my SQL syntax

Hi Guys,

I am at a loss if i run the following statement in MySQLworkbench it works fine. However when I try using the ODBC connection in c# i get the following error;

ERROR [42000] [MySQL][ODBC 5.1 Driver][mysqld-5.1.56-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 'SELECT @@IDENTITY' at line 1

the SQL i am using is very simple;

connection = new OdbcConnection(connectionString);
            connection.Open();

            String oQRY = String.Format("INSERT INTO `message` (fromID,subject,message,date,important) VALUES ({0},'{1}','{2}','{3}',{4}); SELECT @@IDENTITY AS `identity`;", userID, SubjectTextBox.Text, MessageMemo.Text, timestamp, ImportantCheckBox.Value);
            //Response.Write(oQry + "<BR>")
            OdbcCommand com = new OdbcCommand(oQRY, connection);
            com.ExecuteNonQuery();
            com.CommandText = "SELECT Last_Insert_ID()";
            int messageID = (int) com.ExecuteScalar();

the value of oQRY is

"INSERT INTO `message` (fromID,subject,message,date,important) VALUES (0,'test','test','2011-03-16 00:00:00',True); SELECT @@IDENTITY AS `identity`;"

any ideas whats going on here please?

Thanks in advance,

Matt.
ASKER CERTIFIED SOLUTION
Avatar of enachemc
enachemc
Flag of Afghanistan image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Shinesh Premrajan
Replace with this query

            String oQRY = String.Format("INSERT INTO `message` (fromID,subject,message,date,important) VALUES (SELECT @@IDENTITY AS `identity`,'{0}','{1}','{2}',{3});", userID, SubjectTextBox.Text, MessageMemo.Text, timestamp, ImportantCheckBox.Value);

Hope this helps