如题,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()方法执行的存储过程语句