MySQL社区

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 2358|回复: 2
打印 上一主题 下一主题

[存储过程及函数] 程序往MYSQL插入数据用的是存储过程报错

[复制链接]
跳转到指定楼层
1#
发表于 2013-3-8 19:35:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
报如下错误: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,不用存储过程的方式不报错,正常运行。)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享淘帖 顶 踩
2#
发表于 2013-3-9 23:08:17 | 只看该作者
存储过程没有问题
3#
 楼主| 发表于 2013-3-11 19:09:54 | 只看该作者
已解决,用text="{call AddApiMtDb(?,?,?)}"是语法问题。代码写错了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|申请友链|小黑屋|Archiver|手机版|MySQL社区 ( 京ICP备07012489号   
联系人:周生; 联系电话:13911732319

GMT+8, 2024-4-27 11:59 , Processed in 0.066025 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表