以编程方式构建访问查询
Posted
技术标签:
【中文标题】以编程方式构建访问查询【英文标题】:Programmatically Build Access Query 【发布时间】:2014-04-15 19:18:34 【问题描述】:Microsoft Office Access 数据库包含表格、查询、表单和报告。
是否可以通过 C# 在 Access 数据库中构建和保存查询?
例如,我知道我可以使用 OLEDB 连接到 Access 数据库并使用其表和已定义的查询使用 SQL 命令,但我将如何构建新查询然后将其保存在数据库中?
【问题讨论】:
我看到了多个关于如何在数据表上查询访问或显示数据的示例,但实际上并未从头开始创建查询并将其保存在访问数据库中。因此,我发布了我的问题。 我给你一个提示..看看如何使用OleDB或SqlClient库 我看到的所有使用 OleDB 或 SqlClient 库的结果只是将结果返回到数据集。我还没有看到向您展示如何将 SQL 字符串保存为访问查询的示例。 【参考方案1】:如果您想将 Querydefinitons 添加到现有的 access 数据库中,您可以使用 Access Interop 程序集来执行此操作。
新建一个c#项目并添加对:
Microsoft Office 12.0 Access 数据库引擎对象库
(或与您的 Office/Access 版本匹配的版本)
此代码在 Access 数据库中为数据库中的每个表创建一个 Query 以查询行数:
var dbe = new DBEngine();
var db = dbe.OpenDatabase(@"c:\path\to\your\youraccessdatabase.accdb");
// loop over tables
foreach (TableDef t in db.TableDefs)
// create a querydef
var qd = new QueryDef();
qd.Name = String.Format("Count for 0", t.Name);
qd.SQL = String.Format("SELECT count(*) FROM 0", t.Name);
//append the querydef (it will be parsed!)
// might throw if sql is incorrect
db.QueryDefs.Append(qd);
db.Close();
【讨论】:
我已经快一年了,仍然享受这个解决方案以上是关于以编程方式构建访问查询的主要内容,如果未能解决你的问题,请参考以下文章