以编程方式生成访问查询
本文关键字:访问 查询 方式生 编程 | 更新日期: 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();