好的,以上内容可能看起来有些奇怪,但请多多包涵……
我正在构建一个报告应用程序。在 .NET3.5 上的 C# 中,它包含一个 SQLCE 3.5 sp1 数据库。我想使用数据库来存储可供用户使用的各种报告的 sql(因此他们不必知道有关脏位的任何信息......)。
当他们希望运行报告时,他们只需在 UI 上选择适当的按钮,然后它就会离开并从数据库中获取相关的 sql 并将其插入一段代码以运行报告,随后将返回的数据呈现给他们。
我有一个这样结构的表格 -
- ReportIdx 数字,
- 报告名称 varchar(120),
- SQL_Txt varchar(MAX),
- 评论 varchar(120)
运行以下 -
INSERT INTO
SqlLib (ReportIdx, ReportName, SQL_Txt, Comments)
VALUES (3, 'TestRowInsert02', 'select * from test_table where testid in('1', '2','3') ', '想知道这是否可行? ')<
我收到以下错误消息 -
INSERT INTO 子句中的值列表错误。无法解析查询文本。错误来源:SQL Server Compact ADO.NET 数据提供程序错误消息:解析查询时出错。[令牌行号 = 3,令牌行偏移量 = 90,错误令牌 = 1]
我尝试在 sql_txt 值内的逗号前插入正斜杠(\),但上述错误再次出现,sql insert 语句更改如下 -
INSERT INTO
SqlLib (ReportIdx, ReportName, SQL_Txt, Comments)
VALUES (3, 'TestRowInsert02', 'select * from test_table where testid in(\' 1 \ ', \' 2 \ ',\' 3 \ ') ', '想知道这是否可行?')<
我想我真正需要知道的是'我可以将报告的 sql 存储在 SQLCE 列中,以便可以简单地检索并随后在另一段代码中运行?我是否可以格式化内容,以便在 SQL 报告中使用它们之前不需要进一步处理?