如何以编程方式将XML插入Excel工作表?

时间:2011-08-05 19:33:26

标签: c# excel oledb

我正在使用OleDbConnection将一些数据写入电子表格。这些数据的几列包括XML(不是XML中的数据,而是XML本身)。但是,当我尝试使用ExecuteNonQuery()插入时,我收到以下OleDbException:查询表达式中的语法错误(缺少运算符)'“”'

最近,我尝试过像

这样的东西
...
command.CommandText = "INSERT INTO (Column1) VALUES(""<MyElement name="Name"/>"")";

这样做。好像围绕“名字”的引号似乎正在抛弃一切。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您必须使用转义字符将引号字符表示为文字引用而不是操作。它可能会变得棘手,因为C#中存在转义字符,并且SQL中的转义字符也是如此。

例如,在C#中,要将“字符传递给文字字符串,您需要使用:

string quoted = "\"Quoted String\"";

评估字符串引用将返回“Quoted String”(包括引号)

这将允许您将引号传递给SQL命令。但是,除非您使用转义序列,否则SQL会将它们视为引号运算符,而不是引号文字:

""Quoted String""

因此,对于要在SQL语句中用作文字的一部分的每个引号字符,必须输入两次字符。

假设您的SQL实现上的“字符是一组双引号”的转义序列,请尝试使用以下内容:

command.CommandText = "INSERT INTO (Column1) VALUES(\"<MyElement name=\"\"Name\"\"/>\")";