动态/变量表名 C# sqlclient



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

我有这些 ID,但问题是我的 SQL 在使用 sqlclient 的 C# 中应该是什么样子?

例如:

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

有效,但仍对SQL注入开放

我也试过:

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

但不起作用,因为 sql 将表名读取为myTable@id而不是例如 myTable1

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

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

看看Dynamic SQL

  • SELECT * FROM @tablename

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

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

相关内容

  • 没有找到相关文章

最新更新