0

好的,以上内容可能看起来有些奇怪,但请多多包涵……

我正在构建一个报告应用程序。在 .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 报告中使用它们之前不需要进一步处理?

4

1 回答 1

0

有关在 SQLCE 中使用抽象的想法,请参阅此链接。(一种封装一组 SQL 语句以将底层存储与编程模型隔离的方法)

于 2012-06-27T12:18:07.910 回答