|
报如下错误:ERROR [42000] [MySQL][ODBC 3.51 Driver][mysqld-5.5.20]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 'AddApiMtDb' at line 1
其中'AddApiMtDb' 是存储过程:
-------------------------------------------------------
DELIMITER $$
USE `testmessage`$$
DROP PROCEDURE IF EXISTS `AddApiMtDb`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `AddApiMtDb`(IMOBILES VARCHAR(16),CONTENTI TEXT,SEND_TIMEI DATETIME)
BEGIN
INSERT INTO apiddDB(SM_ID,SRC_ID,MOBILES,CONTENT,SEND_TIME,UNICODE_CONTENT) VALUES (0,0,IMOBILES,CONTENTI,SEND_TIMEI,'allyn');
END$$
DELIMITER ;
----------------------------------------------------
C#写入代码
string MyConString = getConAddImportMySql();
OdbcConnection MyConnection = new OdbcConnection(MyConString);
MyConnection.Open();
OdbcDataAdapter myodbcadapter = new OdbcDataAdapter();
DataSet dataset = new DataSet();
myodbcadapter.SelectCommand = new OdbcCommand();
myodbcadapter.SelectCommand.Connection = MyConnection;
myodbcadapter.SelectCommand.CommandText = "AddApiMtDb";
myodbcadapter.SelectCommand.CommandType = CommandType.StoredProcedure;
OdbcParameter opfirst = new OdbcParameter("?IMOBILES", OdbcType.VarChar, 16);
opfirst.Value = mobilei;
myodbcadapter.SelectCommand.Parameters.Add(opfirst);
OdbcParameter opsend = new OdbcParameter("?CONTENTI", OdbcType.Text);
opsend.Value = textinfo;
myodbcadapter.SelectCommand.Parameters.Add(opsend);
OdbcParameter opthirth = new OdbcParameter("?SEND_TIMEI", OdbcType.DateTime);
opthirth.Value = System.DateTime.Now;
myodbcadapter.SelectCommand.Parameters.Add(opthirth);
myodbcadapter.SelectCommand.ExecuteReader();
myodbcadapter.Fill(dataset);
注:直接用参数 call 'AddApiMtDb' 在SQLYOG里可以执行,不报错,能插入数据。但与程序相连插入就报如上错误,(直接用SQL,不用存储过程的方式不报错,正常运行。) |
|