我需要在MySqlCommand中声明一个局部变量,但该变量不断被解释为参数,因此引发异常,表明该参数未初始化。我正在尝试做类似的事情:

comm.CommandText="declare @mid int; etc.....";


@mid是局部变量,而不是参数,但MicroSoft的某个人认为,使用@前缀参数是个好主意。

最佳答案

MySQL允许在查询中内联创建变量,您只需要使用所需的任何值构建语句,然后就可以在查询中进行调整,就好像它是内联变量一样。由您决定控制和了解/更改数据类型。

select
      a.field,
      @var1 := @var +1 as sampleIncrease,
      @var2 := DATE_ADD( @var2, INTERVAL @var1 DAY )
   from
      someTable a,
      ( select @var1 := 1,
               @var2 := now()  ) sqlvars
   where
      ...


Here is another example from my post posts showing a variety of uses of mysql variables

关于c# - 如何在MySqlCommand中包含“声明”语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27626170/

10-10 05:20