在Excel式酒吧插入我得到不想要的字符'
這限制了場類型,如日期,以特定的格式OLEDB Excel中插入不想要的字符(')
query="INSERT INTO [book$] ([Book Name]) VALUES ('" + txtbookname.Text +"')";
此值是字符串類型的插入件
後轉換後例如:如果我在excel單元中插入了I AM
,它將是相同的。
但是,當去編輯該單元格顯示'I AM
。我不想那'
字符在開始
在Excel式酒吧插入我得到不想要的字符'
這限制了場類型,如日期,以特定的格式OLEDB Excel中插入不想要的字符(')
query="INSERT INTO [book$] ([Book Name]) VALUES ('" + txtbookname.Text +"')";
此值是字符串類型的插入件
後轉換後例如:如果我在excel單元中插入了I AM
,它將是相同的。
但是,當去編輯該單元格顯示'I AM
。我不想那'
字符在開始
'
(就像你幾乎所說的)表示該單元格是文本類型。
簡而言之,對於文本值,不要爲此付出汗水:這只是Excel表達「這是一個文本內容,而不是一個公式或任何東西」的方式。反正它並沒有出現。 (歷史筆記:我相信這個約定源於原始的Lotus 123兼容性,如果內存服務的話)。
這是爲了防止事情發生錯誤(想象一下,如果插入文本=3*7
,是否應該將其解釋爲公式?)。
現在,我還沒有在OleDB提供程序中使用Excel,但我幾乎可以確定,您可以通過實際插入日期(或數字或...)而不是字符串來獲得所需的效果值。例如: -
INSERT INTO [book$] ([Copies]) VALUES (42)
會插入單元格內容42
INSERT INTO [book$] ([Copies]) VALUES ('42')
會插入單元格內容'42
這不行! '123'與123 – user3600403
@ user3600403相同,或許就像我說過的,我沒有使用Excel。你碰巧有什麼值得分享?你的說法並不完全清楚(事實上,'123'是不同的,所以你可能意味着你在特定的場景中沒有看到不同的結果。除此之外,我們無法猜測這個場景,你是否嘗試過其他的東西,比如'123'可以編碼123的單元格值?) – sehe
到底是什麼問題? – driis
在Excel *單元格中顯示單引號還是單元格處於活動狀態時在地址欄中顯示? –
爲了防止輸入困難和注入漏洞,我建議使用OleDb的編譯語句功能(IIRC)。這使得_correctly_彙編SQL語句變得更加容易,同時指定值爲_type_的 – sehe