我在使用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语句中使用参数哪个命令我应该使用没有麻烦的命令。如何克服这一困难。提前致谢
答案 0 :(得分:0)
您必须连接SQL和表名,例如:
cmd.CommandText = "insert into " + Data + " ([Firstname],[Lastname]) values (?,?)";