初学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如下:
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才好。有劳各位了~~~
我这个参数
做一个日志功能,对于每个系统都有两个表,一个Log表,一个Exception表。由于这两个表的表结构是一模一样的,只是表名不一样,于是乎想将表名作为参数传入。比如:
系统1有两个表,分别是:系统1_Log,系统1_Exception。
系统2有两个表,分别是:系统2_Log,系统2_Exception。
系统3有两个表,分别是:系统3_Log,系统3_Exception。
以此类推。对于系统1、2、3的Log表的字段和字段类型都是一模一样的,就想写一句SQL,将表名作为参数传递进去就OK。我写的SQL如下:
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才好。有劳各位了~~~
我这个参数
解决方案 »
- 请教两个表之间的怎样建立条件关系问题
- sql问题急用!求大神
- 请教一条sql语句
- 一个 NOT IN的问题
- 在linux 下,有没有mysql的图形界面工具,可以在xwindows下操作它
- 2亿到2十亿之间的数据量用mysql可以支撑得了吗?
- $$$给分请教:我把Linux上的一个网站下到win2000上,并且配置好了环境,但大量出现Warning: Failed opening '/home/www/include/global/c
- mysql性能、压力测试
- 请教一个查询语句
- 在同一台机器上运行300+个mysql实例会不会有什么问题?
- 向mysql视图中插入数据,性能如何。
- mysql slave 连接中断的问题
<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#代码如下:
[Test]
public void Get()
{
var dm = new DataManager("GetUserFromMySQL");
dm.SetParameters("TableName", "tbluser");
dm.SetParameters("ID", 1);
var result = dm.ExecuteEntity<UserInfo>();
}