Access通用类(适合不断变化数据库名的项目)
作者:jbkadmin 日期:2010-06-17
最近网站基本上都是用到了Access,后来发现几乎都要用到该数据库,因为和软件有一些联系,所以打算自己改一个AccessDBHelpser出来方便以后的开发,最后确定了一个适合一个项目就一个access数据库的情形,同时也适用于一个项目中不断上传access数据库的项目,该读取哪一个 access成了一个小小的难题,下面把代码贴出:
代码
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
/// <summary>
///AccessDBHelper 的摘要说明
/// </summary>
public class AccessDBHelper
{
private string connectionString = "Provider=Microsoft.Jet.OleDb.4.0;Jet Oledb:Database Password=mingmei114;Data Source=";
public AccessDBHelper()
{
}
public AccessDBHelper(string AsaFilePath)
{
connectionString += AsaFilePath;
}
private OleDbConnection connection;
public OleDbConnection Connection
{
get
{
if (connection == null)
{
connection = new OleDbConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
}
public int ExecuteCommand(string safeSql)
{
OleDbCommand cmd = new OleDbCommand(safeSql,Connection);
int result = cmd.ExecuteNonQuery();
return result;
}
public int ExecuteCommand(string sql, params SqlParameter[] values)
{
OleDbCommand cmd = new OleDbCommand(sql, Connection);
cmd.Parameters.AddRange(values);
return cmd.ExecuteNonQuery();
}
public int GetScalar(string safeSql)
{
OleDbCommand cmd = new OleDbCommand(safeSql, Connection);
int result = Convert.ToInt32(cmd.ExecuteScalar());
return result;
}
public int GetScalar(string sql, SqlParameter[] values)
{
OleDbCommand cmd = new OleDbCommand(sql, Connection);
cmd.Parameters.AddRange(values);
int result = Convert.ToInt32(cmd.ExecuteScalar());
return result;
}
public OleDbDataReader GetReader(string safeSql)
{
OleDbCommand cmd = new OleDbCommand(safeSql, Connection);
OleDbDataReader reader = cmd.ExecuteReader();
return reader;
}
public OleDbDataReader GetReader(string sql, SqlParameter[] values)
{
OleDbCommand cmd = new OleDbCommand(sql, Connection);
cmd.Parameters.AddRange(values);
OleDbDataReader reader = cmd.ExecuteReader();
return reader;
}
public DataTable GetDataSet(string safeSql)
{
DataSet ds = new DataSet();
OleDbCommand cmd = new OleDbCommand(safeSql, Connection);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(ds);
return ds.Tables[0];
}
public DataTable GetDataSet(string sql, SqlParameter[] values)
{
DataSet ds = new DataSet();
OleDbCommand cmd = new OleDbCommand(sql, Connection);
cmd.Parameters.AddRange(values);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(ds);
return ds.Tables[0];
}
}
下面是前台的代码:
代码
protected string BindDrName(string srk) //收款人 销售员
{
if (Session["shopid"] == null)
Response.Redirect("MemberLogin.aspx");
string myshopDB = Session["shopid"].ToString();
string asafilepath = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/" + myshopDB + ".asa");
AccessDBHelper acc = new AccessDBHelper(asafilepath);
string sql = "select * from dr where dr_hm='" + srk +"'";
DataTable dt = acc.GetDataSet(sql);
string drname = "";
foreach (DataRow item in dt.Rows)
{
drname = item["dr_name"].ToString();
}
return drname;
}
该项目 在前台登录的时候做了一个下拉列表记录 选择的是那一项,然后记录该value然后存入session中,asa就是access数据库,名字与dropdownlist中的value对应,因为都是和数据库的某个id对应起来的,access数据库的名字就是一个id值,后缀名为 .asa。这一系列不断上传的asa文件就存放在根目录的App_Data文件中!
代码
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
/// <summary>
///AccessDBHelper 的摘要说明
/// </summary>
public class AccessDBHelper
{
private string connectionString = "Provider=Microsoft.Jet.OleDb.4.0;Jet Oledb:Database Password=mingmei114;Data Source=";
public AccessDBHelper()
{
}
public AccessDBHelper(string AsaFilePath)
{
connectionString += AsaFilePath;
}
private OleDbConnection connection;
public OleDbConnection Connection
{
get
{
if (connection == null)
{
connection = new OleDbConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
}
public int ExecuteCommand(string safeSql)
{
OleDbCommand cmd = new OleDbCommand(safeSql,Connection);
int result = cmd.ExecuteNonQuery();
return result;
}
public int ExecuteCommand(string sql, params SqlParameter[] values)
{
OleDbCommand cmd = new OleDbCommand(sql, Connection);
cmd.Parameters.AddRange(values);
return cmd.ExecuteNonQuery();
}
public int GetScalar(string safeSql)
{
OleDbCommand cmd = new OleDbCommand(safeSql, Connection);
int result = Convert.ToInt32(cmd.ExecuteScalar());
return result;
}
public int GetScalar(string sql, SqlParameter[] values)
{
OleDbCommand cmd = new OleDbCommand(sql, Connection);
cmd.Parameters.AddRange(values);
int result = Convert.ToInt32(cmd.ExecuteScalar());
return result;
}
public OleDbDataReader GetReader(string safeSql)
{
OleDbCommand cmd = new OleDbCommand(safeSql, Connection);
OleDbDataReader reader = cmd.ExecuteReader();
return reader;
}
public OleDbDataReader GetReader(string sql, SqlParameter[] values)
{
OleDbCommand cmd = new OleDbCommand(sql, Connection);
cmd.Parameters.AddRange(values);
OleDbDataReader reader = cmd.ExecuteReader();
return reader;
}
public DataTable GetDataSet(string safeSql)
{
DataSet ds = new DataSet();
OleDbCommand cmd = new OleDbCommand(safeSql, Connection);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(ds);
return ds.Tables[0];
}
public DataTable GetDataSet(string sql, SqlParameter[] values)
{
DataSet ds = new DataSet();
OleDbCommand cmd = new OleDbCommand(sql, Connection);
cmd.Parameters.AddRange(values);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(ds);
return ds.Tables[0];
}
}
下面是前台的代码:
代码
protected string BindDrName(string srk) //收款人 销售员
{
if (Session["shopid"] == null)
Response.Redirect("MemberLogin.aspx");
string myshopDB = Session["shopid"].ToString();
string asafilepath = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/" + myshopDB + ".asa");
AccessDBHelper acc = new AccessDBHelper(asafilepath);
string sql = "select * from dr where dr_hm='" + srk +"'";
DataTable dt = acc.GetDataSet(sql);
string drname = "";
foreach (DataRow item in dt.Rows)
{
drname = item["dr_name"].ToString();
}
return drname;
}
该项目 在前台登录的时候做了一个下拉列表记录 选择的是那一项,然后记录该value然后存入session中,asa就是access数据库,名字与dropdownlist中的value对应,因为都是和数据库的某个id对应起来的,access数据库的名字就是一个id值,后缀名为 .asa。这一系列不断上传的asa文件就存放在根目录的App_Data文件中!
评论: 0 | 引用: 0 | 查看次数: -
发表评论
上一篇
下一篇

文章来自:
Tags: