以编程方式生成访问查询

本文关键字:访问 查询 方式生 编程 | 更新日期: 2023-09-27 17:58:24

Microsoft Office Access数据库包含表、查询、窗体和报表。

是否可以从C#在Access数据库中构建并保存查询?

例如,我知道我可以使用OLEDB连接到Access数据库,并使用其表和已定义的查询使用SQL命令,但我如何构建新查询,然后将其保存在数据库中?

以编程方式生成访问查询

如果要将Querydefinitions添加到现有的访问数据库中,可以使用access Interop组件进行添加。

创建一个新的c#项目并添加对的引用

Microsoft Office 12.0 Access数据库引擎对象库

(或与您的Office/Access版本相匹配的版本)

此代码在Access数据库中为数据库中的每个表创建一个查询,以查询行数:

        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();