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 (?,?)";
我在使用 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 (?,?)";