0

我有动态创建的数据库表。它们都具有相同的名称,但名称末尾有一个唯一的 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

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

4

2 回答 2

4

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

来看看吧Dynamic SQL

于 2013-11-13T09:47:50.700 回答
0

我认为在这个特定查询中使用列名可能会完成这项工作。

string sql = "SELECT colName1, colName2 , colname ......FROM myTable"+id;
于 2013-11-13T09:56:52.430 回答