方法:DataSet 缓存数据表 = new DataSet();
private void AccEss数据库查询与填充(string 表达式, string 表名 = "默认", bool 控制数据叠加 = false)/*定义可选参数*/
{
try
{
Thread 数据询填 = new Thread(delegate()
{
OleDbConnection 建立连接 = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = 数据库名.mdb");
OleDbDataAdapter 数据集 = new OleDbDataAdapter(表达式, 建立连接);
if (缓存数据表.Tables[表名] != null && !控制数据叠加)
{
缓存数据表.Tables[表名].Clear();
/*下面语句看情况调用*/
缓存数据表.Tables[表名].Dispose();
GC.SuppressFinalize(缓存数据表.Tables[表名]);
}
数据集.Fill(缓存数据表, 表名);
绑定源 = BindingContext[缓存数据表, 表名];
});
数据询填.Start();
数据询填.Join();
}
catch (Exception Ts)
{ 错误友情提示("连接数据库、查询、填充数据错误! " + Ts.ToString()); }
finally { }
}
调用:
string 表达式 = "SELECT * FROM 表名 WHERE 字段名 like'" + 查询数据 + "' order by _ID ASC";
AccEss数据库查询与填充(表达式, "表名称", false);
如果需要叠加多次查询结果则:AccEss数据库查询与填充(表达式, "表名称", true);即可。
使用传递命名参数的写法:
AccEss数据库查询与填充(表达式:表达式, 表名:表名, 控制数据叠加:true)/*按原顺序传参数*/
AccEss数据库查询与填充(控制数据叠加:true, 表名:表名, 表达式:表达式)/*按任意顺序传参数*/