C#oledb查询值和目标字段的数量不同

时间:2018-05-31 13:24:09

标签: c# excel oledb

我收到&#34的错误;查询值和目标字段的数量不一样。"对于下面显示的代码部分 -

dask.persist

任何帮助解决问题的人都将不胜感激。 谢谢, Amitai

1 个答案:

答案 0 :(得分:1)

如果你的currentTitle变量恰好有逗号,则查询失败,因为它被视为两个字段。您应该在构建查询文本时使用参数并使用参数集合

传递值
string cmdText = "INSERT INTO [" + ActiveSheetTitle + "] (F1) values(?)";
if (NewPlaylist)
    NewPlaylist = false;
command.Parameters.Add("@f1", OleDbType.VarWChar).Value = currentTitle;
command.ExecuteNonQuery(); 

要考虑的一点也是ActiveSheetTitle变量。不要让您的用户输入该值。您应该从名称的白名单中定义它,以避免对该变量进行可能的Sql注入。