动态/变量表名C#sqlclient

时间:2013-11-13 09:45:30

标签: c# sql sql-server sqlclient

我有动态创建的数据库表。 它们都具有相同的名称,但在名称的末尾有一个唯一的ID,例如myTable1,myTable2等。

我有这些ID,但问题是我的SQL应该如何在C#中使用sqlclient?

例如:

string sql = "SELECT * FROM myTable"+id;

可以工作,但仍然可以进行SQL注入

我也试过了:

string sql = "SELECT * FROM myTable@id";
command.Parameters.AddWithValue("id", id);

但由于sql读取表名为myTable @ id而不是例如myTable1

,因此无效

有没有办法为表名插入参数?

2 个答案:

答案 0 :(得分:4)

常规SQL 不能在字段名称或表名上有参数,只能在值上。

请改为Dynamic SQL

答案 1 :(得分:0)

我认为在此特定查询中使用列名可能会起作用。

string sql = "SELECT colName1, colName2 , colname ......FROM myTable"+id;