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

时间:2017-08-13 10:22:05

标签: c# oledb ms-access-2003 parameterized-query

我在使用OleDb中作为参数的表名时遇到问题。当我查看具有类似问题的论坛时,我发现实际上不可能以这种方式使用参数。但是没有给出解决这个问题的方法。当然,我可以使用实际的表名,但是它们有很多,所以分别处理必要的表会更容易。我尝试使用动态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语句中使用参数哪个命令我应该使用没有麻烦的命令。如何克服这一困难。提前致谢

1 个答案:

答案 0 :(得分:0)

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

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