【发布时间】:2012-06-28 20:34:21
【问题描述】:
好的,以上内容可能看起来有些奇怪,但请多多包涵……
我正在构建一个报告应用程序。在 .NET3.5 上的 C# 中,它包含一个 SQLCE 3.5 sp1 数据库。 我想使用数据库来存储可供用户使用的各种报告的 sql(这样他们就不必知道任何关于脏位的事情......)。
当他们希望运行报告时,他们只需在 UI 上选择适当的按钮,然后它就会离开并从数据库中获取相关的 sql 并将其插入一段代码以运行报告,随后向他们展示返回数据。
我有一个这样的表格 -
- ReportIdx 数字,
- 报表名称 varchar(120),
- SQL_Txt varchar(MAX),
- 评论 varchar(120)
运行以下 -
插入
SqlLib (ReportIdx、ReportName、SQL_Txt、评论)
VALUES (3, 'TestRowInsert02', 'select * from test_table where testid in('1', '2','3') ', '想知道这是否可行?')
我收到以下错误消息 -
INSERT INTO 子句中的值列表错误。 无法解析查询文本。 错误来源:SQL Server Compact ADO.NET 数据提供程序 错误消息:解析查询时出错。 [Token line number = 3, Token Line offset = 90, Token in error = 1]
我尝试在 sql_txt 值内的逗号前插入正斜杠(\),但上述错误再次出现,sql insert 语句更改如下 -
插入
SqlLib (ReportIdx、ReportName、SQL_Txt、评论)
VALUES (3, 'TestRowInsert02', 'select * from test_table where testid in(\' 1 \ ', \' 2 \ ',\' 3 \ ') ', '想知道这是否可行?')
我想我真正需要知道的是'我可以将报表的 sql 存储在 SQLCE 列中,以便可以简单地检索它并随后在另一段代码中运行吗? 我可以对内容进行格式化,以便在我可以在 SQL 报告中使用之前不需要进一步处理?
【问题讨论】:
-
编辑 - 第二个示例中的正向(转义)斜杠实际上都被 SQLCE 查询解析器加倍...
标签: visual-studio-2008 .net-3.5 sql-server-ce