2012-03-23 125 views
0

static string connStrCheckData =「Provider = Microsoft.ACE.OLEDB.12.0; Data Source =」+ Server.MapPath(「test.xlsx」)+「; Extended Properties = Excel 12.0;」;「;OleDbException插入語法錯誤

static string oledbConnCheckData = new OleDbConnection(connStrCheckData);

string adsName =「MagMall.com - 在1,000本雜誌上訂閱儲蓄」;

OleDbCommand cmd = new OleDbCommand(); cmd.CommandType = CommandType.Text; ('')+ adsName.ToString()。Trim()+「')」; cmd.Connection = oledbConnCheckData;

 oledbConnCheckData.Open(); 

     cmd.ExecuteNonQuery(); 

     oledbConnCheckData.Close(); 

Errro:語法錯誤(缺少操作員)在查詢表達式'MagMall.com - 1,000雜誌認購儲蓄 ')'。

以上錯誤Ocssurs,當我試圖插入「MagMall.com - 訂閱儲蓄在1000雜誌」單詞。

回答

0

正如克林斯曼說,你的hve逃脫單引號購買添加額外的一個:1000「的(不是\」)。雙重的指令是通過聲明的正確方法。

0

你要逃避1,000's'這樣1,000\'s

+0

可以連字符「 - 」產生任何問題。並且每次在循環中adsName的值都會發生變化,那麼我如何在變量中應用轉義。 – Shailesh 2012-03-23 06:15:13

+0

我確實喜歡adsName.ToString()。Trim()。替換(「'」,「\'」)但仍然給出錯誤。 – Shailesh 2012-03-23 06:19:08

+0

@Shailesh:試試'adsName.ToString()。Trim()。Replace(「'」,「\\'」) – 2012-03-23 06:40:49