C# 使用C语言实现MySQL中的参数转义#

C# 使用C语言实现MySQL中的参数转义#,c#,mysql,C#,Mysql,我在C中有一个这样的存储过程创建代码 当我尝试使用MySQLCommand.ExecuteNonQuery()通过C#创建此sp时;我得到错误,必须定义参数'@sSelectBilling'。如何解决这个问题?试试这个 CREATE PROCEDURE `MyProc` ( `searchText` text, `iterationsCount` INT, `filterName` char(30) ) BEGIN DECLARE i INT;

我在C中有一个这样的存储过程创建代码

当我尝试使用MySQLCommand.ExecuteNonQuery()通过C#创建此sp时;我得到错误,必须定义参数'@sSelectBilling'。如何解决这个问题?

试试这个

 CREATE  PROCEDURE `MyProc` (
      `searchText` text, 
      `iterationsCount` INT, 
       `filterName` char(30) )
 BEGIN
 DECLARE i  INT; 
 DECLARE @sSelectBilling  INT; // define your variable here.
 SET i = 1;
 SET @sSelectBilling = (count(distinct t.BillingID) from Billing t);//use () instead of quotes.

我自己弄明白了。我需要添加Allow User Variables=true;在连接字符串中。下面的文章帮助我弄明白了

问题似乎不在SP中,因为当我通过MySQL workbench手动创建SP时,SP创建得很好,但当我尝试以编程方式创建它时,它不起作用。您的问题是这是
@sSelectBilling
,所以您如何说SP创建得很好呢,我无法编辑存储过程。我正在从一个MySQL数据库复制存储过程,并以编程方式在另一个数据库中创建存储过程。因此无法修改原始存储过程。
 CREATE  PROCEDURE `MyProc` (
      `searchText` text, 
      `iterationsCount` INT, 
       `filterName` char(30) )
 BEGIN
 DECLARE i  INT; 
 DECLARE @sSelectBilling  INT; // define your variable here.
 SET i = 1;
 SET @sSelectBilling = (count(distinct t.BillingID) from Billing t);//use () instead of quotes.