C# OleDb 中的参数化查询。不完整的查询问题

Parameterized query in C# OleDb. Incomplete query issue

我在使用 table 名称作为 OleDb 中的参数时遇到了问题。当我浏览有类似问题的论坛时,我发现实际上不可能以这种方式使用参数。但是没有给出任何解决这个问题的方法。当然,我可以使用实际的 table 名称,但它们有很多,因此单独处理必要的 table 会更容易。我尝试使用动态 sql 仅使用字符串连接,这会导致 SQL 注入问题。所以,这是我的代码

foreach (String Data in tablelist)
        {
            if (Data == "Harvard")
            {
               cmd.Parameters.Add("@tablename", OleDbType.Char);
               cmd.Parameters["@tablename"].Value = Data;
               cmd1.Parameters.AddWithValue("@University", Data);
               cmd.CommandText = "insert into @tablename ([Firstname],[Lastname]) values (?,?)";
            }
        }

考虑到我不能在 INSERT INTO 语句中使用参数,我应该使用哪个命令没有麻烦的命令。如何克服这个困难。提前致谢

您必须连接 SQL 和 table 名称,例如:

cmd.CommandText = "insert into " + Data + " ([Firstname],[Lastname]) values (?,?)";