MySQL Connector/NET 临时变量
时间:2011-10-27
来源:互联网
初学MySQL,想问一个问题,有劳各位。
做一个日志功能,对于每个系统都有两个表,一个Log表,一个Exception表。由于这两个表的表结构是一模一样的,只是表名不一样,于是乎想将表名作为参数传入。
比如:
系统1有两个表,分别是:系统1_Log,系统1_Exception。
系统2有两个表,分别是:系统2_Log,系统2_Exception。
系统3有两个表,分别是:系统3_Log,系统3_Exception。
以此类推。。。。
对于系统1、2、3的Log表的字段和字段类型都是一模一样的,就想写一句SQL,将表名作为参数传递进去就OK。
我写的SQL如下:
SQL code
这个语句在MySQL Workbench里面已经成功执行了。
不过在代码里面,使用Connector /.NET作为连接器使用的时候,将@a参数在C#代码里面定义好,但是,@t只是一个临时变量,不需要在C#代码里面定义,运行的时候,一直出错,错误说的是:请定义参数@t。
弄了半天,实在不知道应该怎么定义这个参数@t才好。
有劳各位了~~~
我这个参数
做一个日志功能,对于每个系统都有两个表,一个Log表,一个Exception表。由于这两个表的表结构是一模一样的,只是表名不一样,于是乎想将表名作为参数传入。
比如:
系统1有两个表,分别是:系统1_Log,系统1_Exception。
系统2有两个表,分别是:系统2_Log,系统2_Exception。
系统3有两个表,分别是:系统3_Log,系统3_Exception。
以此类推。。。。
对于系统1、2、3的Log表的字段和字段类型都是一模一样的,就想写一句SQL,将表名作为参数传递进去就OK。
我写的SQL如下:
SQL code
set @a = '`test`.`tbluser`'; set @t = concat('select * from ', @a, ' where `id` = 1'); prepare col from @t; execute col; deallocate prepare col;
这个语句在MySQL Workbench里面已经成功执行了。
不过在代码里面,使用Connector /.NET作为连接器使用的时候,将@a参数在C#代码里面定义好,但是,@t只是一个临时变量,不需要在C#代码里面定义,运行的时候,一直出错,错误说的是:请定义参数@t。
弄了半天,实在不知道应该怎么定义这个参数@t才好。
有劳各位了~~~
我这个参数
作者: jacksonwj 发布时间: 2011-10-27
我把declare也用了,还是报这个错。
Message:Fatal error encountered during command execution.
InnerException:{"Parameter '@t' must be defined."}
Message:Fatal error encountered during command execution.
InnerException:{"Parameter '@t' must be defined."}
作者: jacksonwj 发布时间: 2011-10-27
贴出你的.net 的代码。
作者: ACMAIN_CHM 发布时间: 2011-10-27
我是将SQL语句写在xml文件里面的,自己封装的访问方法,标准的MySQL语句执行完全没有问题。
我的SQL代码如下:
XML code
我的C#代码如下:
C# code
我的SQL代码如下:
XML code
<DataCommand Name="GetUserFromMySQL"> <CommandText> <![CDATA[ SET @t = CONCAT('SELECT * FROM ', ?TableName, ' WHERE `ID` = ?ID'); PREPARE col FROM @t; EXECUTE col; DEALLOCATE PREPARE col; ]]> </CommandText> <Parameters> <Parameter Name="?TableName" DbType="AnsiString" Size="100"/> <Parameter Name="?ID" DbType="Int32"/> </Parameters> </DataCommand>
我的C#代码如下:
C# code
[Test] public void Get() { var dm = new DataManager("GetUserFromMySQL"); dm.SetParameters("TableName", "tbluser"); dm.SetParameters("ID", 1); var result = dm.ExecuteEntity<UserInfo>(); }
作者: jacksonwj 发布时间: 2011-10-27
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28