【问题标题】:OleDbException syntax error in insert Statment插入语句中的 OleDbException 语法错误
【发布时间】:2012-04-07 18:09:18
【问题描述】:
static string connStrCheckData = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("test.xlsx") + ";Extended Properties=Excel 12.0;";
 
static string      oledbConnCheckData = new OleDbConnection(connStrCheckData);

string adsName ="MagMall.com - subscription savings on 1,000's of magazines";

OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "insert into  [sheet1$] ( [column1]) values ('" + adsName.ToString().Trim() + "')";
cmd.Connection = oledbConnCheckData;

oledbConnCheckData.Open();

cmd.ExecuteNonQuery();

oledbConnCheckData.Close();

Errro : 查询表达式中的语法错误(缺少运算符) ''MagMall.com - 订阅 1,000 种杂志可节省费用')'。

当我尝试插入:“MagMall.com - 1,000 份杂志的订阅节省”字样时出现上述错误。

【问题讨论】:

    标签: excel insert syntax-error oledbexception


    【解决方案1】:

    正如 juergen 所说,您必须避开单个撇号,购买一个额外的撇号:1,000's(不是 \')。双撇号是传递语句的正确方法。

    【讨论】:

      【解决方案2】:

      你必须像这样1,000\'s 转义1,000's 中的' 1,000\'s

      【讨论】:

      • 连字符“-”能否产生任何问题。并且 adsName 的值每次在循环中都会发生变化,那么我如何在变量中应用转义。
      • 我确实喜欢 adsName.ToString().Trim().Replace("'", "\'") 但仍然报错。
      • @Shailesh:试试adsName.ToString().Trim().Replace("'", "\\'")
      猜你喜欢
      • 1970-01-01
      • 2018-03-25
      • 2015-05-25
      • 1970-01-01
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      • 1970-01-01
      相关资源
      最近更新 更多