laopiao650 2016-07-04 06:44 采纳率: 0%
浏览 1143

C#拼接mysql存储过程语句无法执行

如题,C#拼接mysql的存储过程语句,如果将语句输出,直接在mysql控制台,
可以正常执行,但是在程序中执行会报错!

 DeleteProcedureName = "proc_del_" + tbName;
                string str = "";
                string sql = "";
                string str3 = "";
                for (int i = 0; i < checkedFields.Count; i++)
                {
                    if (i == checkedFields.Count - 1)
                    {
                        str = str + checkedFields[i] + "=a" + checkedFields[i];
                        str3 += "IN `a" + checkedFields[i] + "` " + checkedType[i];
                    }
                    else
                    {
                        str = str + checkedFields[i] + "=a" + checkedFields[i] + " and ";
                        str3 += "IN `a" + checkedFields[i] + "` " + checkedType[i] + ",";
                    }
                }
                sql = "delete from " + tbName + " where " + str + ";";
                DeleteProcedure = string.Format(@"DROP PROCEDURE IF EXISTS `{0}`;
DELIMITER //
CREATE DEFINER=`{1}`@`{2}` PROCEDURE `{3}`({4})
BEGIN
{5}
END
//
DELIMITER ;
", DeleteProcedureName, userId, serverName, DeleteProcedureName, str3, sql);

图片说明

我是用MySqlCommand的ExecuteNonQuery()方法执行的存储过程语句

  • 写回答

1条回答 默认 最新

  • focusnothing 2016-07-04 08:18
    关注

    这个错误好像发生在传递第四个参数的时候
    str3的内容是什么? 这个地方作为procedure的参数肯定有要求的格式的,
    你传的str3肯定是错误的.

    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题