Web.Config文件代码:(配置文件)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="Myconn" value="Access"/>
</appSettings>
<connectionStrings>
<add name="oleconn" providerName="System.Data.OleDb" connectionString="Provider=Microsoft.Jet.OleDb.4.0;Data 
Source=|DataDirectory|92dotnet.mdb"/>
<add name="sqlconn" providerName="System.Data.Sql" connectionString="server=
(local);database=92dotnet;uid=sa;pwd=gmajlhx"/>
</connectionStrings>
</configuration>
Mydataone.cs文件代码:(基类)
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using System.Data.SqlClient;
namespace Mydotnet
{
public class Mydataone //数据层基类
{
public Mydataone()
{
}
/// <summary>
/// 返回一个Connection对象
/// </summary>
/// <param name="Connstring">Myconn的值,判断Connection对象属于哪种类型</param>
/// <returns>conn</returns>
protected static IDbConnection Createconnection(string Connstring)
{
IDbConnection conn=null;
switch (Connstring)
{
case "Access":
conn = new OleDbConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings
["oleconn"].ConnectionString);
break;
case "SqlServer":
conn = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings
["sqlconn"].ConnectionString);
break;
}
return conn;
}
/// <summary>
/// 返回一个Command对象(重载方法一)
/// </summary>
/// <param name="com">sql语句或存储过程名</param>
/// <param name="commandtype">命令类型</param>
/// <param name="Connstring">Myconn的值,判断Command对象属于哪种类型</param>
/// <param name="conn">Connection接口对象</param>
/// <returns>comm</returns>
protected static IDbCommand Createcommand(string com,CommandType commandtype,string Connstring,IDbConnection conn)
{
IDbCommand comm=null;
switch (Connstring)
{
case "Access":
comm = new OleDbCommand();
comm.Connection =(OleDbConnection)conn;
comm.CommandText = com;
comm.CommandType = commandtype;
break;
case "SqlServer":
comm = new SqlCommand();
comm.Connection = (SqlConnection)conn;
comm.CommandText = com;
comm.CommandType = commandtype;
break;
}
return comm;
}
/// <summary>
/// 返回一个Command对象(重载方法二)
/// </summary>
/// <param name="com">sql语句或存储过程名</param>
/// <param name="commandtype">命令类型</param>
/// <param name="Connstring">Myconn的值,判断Command对象属于哪种类型</param>
/// <param name="conn">Connection接口对象</param>
/// <param name="param">参数数组</param>
/// <returns>comm</returns>
protected static IDbCommand Createcommand(string com, CommandType commandtype, string Connstring,IDataParameter[] 
param,IDbConnection conn)
{
IDbCommand comm = null;
switch (Connstring)
{
case "Access":
comm = new OleDbCommand();
comm.Connection = (OleDbConnection)conn;
comm.CommandText = com;
comm.CommandType = commandtype;
foreach (OleDbParameter par in param)
{
comm.Parameters.Add(par);
}
break;
case "SqlServer":
comm = new SqlCommand();
comm.Connection = (SqlConnection)conn;
comm.CommandText = com;
comm.CommandType = commandtype;
foreach (SqlParameter par in param)
{
comm.Parameters.Add(par);
}
break;
}
return comm;
}
/// <summary>
/// 返回一个DataAdapter对象
/// </summary>
/// <param name="comm">command接口对象</param>
/// <param name="Connstring">Myconn的值,判断DataAdapter对象属于哪种类型</param>
/// <returns></returns>
protected static IDbDataAdapter Createadapter(IDbCommand comm,string Connstring)
{
IDbDataAdapter adapter=null;
switch (Connstring)
{
case "Access":
adapter= new OleDbDataAdapter((OleDbCommand)comm);
break;
case "SqlServer":
adapter= new SqlDataAdapter((SqlCommand)comm);
break;
}
return adapter;
}
}
}
Mydatatwo.cs文件代码:(继承类)
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace Mydotnet //同一个名字空间
{
public class Mydatatwo : Mydataone //继承数据类
{
public static string Connstring=System.Configuration.ConfigurationSettings.AppSettings["Myconn"]; //得到Web.Config里的值
public static IDbConnection conn=Createconnection(Connstring); //调用基类方法得到Connection对象
public Mydatatwo()
{
}
/// <summary>
/// 有返回值的Executescalar方法和数据表第一行第一列的值(string类型)
/// </summary>
/// <param name="com">sql语句或存储过程名</param>
/// <param name="commandtype">命令类型</param>
/// <returns>str</returns>
public static string Executescalar(string com, CommandType commandtype)
{
string str = "";
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
IDbCommand comm = Createcommand(com, commandtype, Connstring, conn);
if (comm.ExecuteScalar() != null)
{
str = comm.ExecuteScalar().ToString();
}
}
}
catch(Exception ee)
{
throw ee;
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return str;
}
/// <summary>
/// 有返回值的Executescalar方法和数据表第一行第一列的值(string类型)
/// </summary>
/// <param name="com">sql语句或存储过程名</param>
/// <param name="commandtype">命令类型</param>
/// <param name="param">参数数组</param>
/// <returns>str</returns>
public static string Executescalar(string com, CommandType commandtype,IDataParameter[] param)
{
string str = "";
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
IDbCommand comm = Createcommand(com, commandtype, Connstring,param,conn);
if (comm.ExecuteScalar() != null)
{
str = comm.ExecuteScalar().ToString();
}
}
}
catch (Exception ee)
{
throw ee;
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return str;
}
/// <summary>
/// 一个无返回值的Executenonquery方法和被影响记录条数
/// </summary>
/// <param name="com">sql语句或存储过程名</param>
/// <param name="commandtype">命令类型</param>
/// <returns>icount</returns>
public static int Executenonquery(string com, CommandType commandtype)
{
int icount=0;
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
IDbCommand comm = Createcommand(com, commandtype, Connstring,conn);
icount = comm.ExecuteNonQuery();
}
}
catch (Exception ee)
{
throw ee;
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return icount;
}
/// <summary>
/// 一个无返回值的Executenonquery方法和被影响记录条数
/// </summary>
/// <param name="com">sql语句或存储过程名</param>
/// <param name="commandtype">命令类型</param>
/// <param name="param">参数数组</param>
/// <returns>icount</returns>
public static int Executenonquery(string com, CommandType commandtype,IDataParameter[] param)
{
int icount = 0;
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
IDbCommand comm = Createcommand(com, commandtype, Connstring,param,conn);
icount= comm.ExecuteNonQuery();
}
}
catch (Exception ee)
{
throw ee;
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return icount;
}
/// <summary>
/// 返回一个DataReader对象
/// </summary>
/// <param name="com">sql语句或存储过程名</param>
/// <param name="commandtype">命令类型</param>
/// <returns>dr</returns>
public static IDataReader Executereader(string com, CommandType commandtype)
{
IDataReader dr=null;
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
IDbCommand comm = Createcommand(com, commandtype, Connstring, conn);
dr = comm.ExecuteReader(CommandBehavior.CloseConnection); //也就是说如果后面调用了dr.Close()方法,则conn.Close()也会随之调用
}
}
catch (Exception ee)
{
throw ee;
}
return dr;
}
/// <summary>
/// 返回一个DataReader对象
/// </summary>
/// <param name="com">sql语句或存储过程名</param>
/// <param name="commandtype">命令类型</param>
/// <param name="param">参数数组</param>
/// <returns>dr</returns>
public static IDataReader Executereader(string com, CommandType commandtype, IDataParameter[] param)
{
IDataReader dr=null;
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
IDbCommand comm = Createcommand(com, commandtype, Connstring, param, conn);
dr = comm.ExecuteReader(CommandBehavior.CloseConnection); //也就是说如果后面调用了dr.Close()方法,则conn.Close()也会随之调用
}
}
catch (Exception ee)
{
throw ee;
}
return dr;
}
/// <summary>
/// 返回一个DataSet对象
/// </summary>
/// <param name="com">sql语句或存储过程名</param>
/// <param name="commandtype">命令类型</param>
/// <returns>ds</returns>
public static DataSet Executedataset(string com, CommandType commandtype)
{
DataSet ds=null;
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
IDbCommand comm = Createcommand(com, commandtype, Connstring,conn);
IDbDataAdapter adapter = Createadapter(comm, Connstring);
ds = new DataSet();
adapter.Fill(ds);
}
}
catch (Exception ee)
{
throw ee;
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return ds;
}
/// <summary>
/// 返回一个DataSet对象
/// </summary>
/// <param name="com">sql语句或存储过程名</param>
/// <param name="commandtype">命令类型</param>
/// <param name="param">参数数组</param>
/// <returns>ds</returns>
public static DataSet Executedataset(string com, CommandType commandtype,IDataParameter[] param)
{
DataSet ds=null;
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
IDbCommand comm = Createcommand(com, commandtype, Connstring, param, conn);
IDbDataAdapter adapter = Createadapter(comm, Connstring);
ds =new DataSet();
adapter.Fill(ds);
}
}
catch (Exception ee)
{
throw ee;
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return ds;
}
/// <summary>
/// 返回一个DataTable对象
/// </summary>
/// <param name="com">Sql语句或存储过程名</param>
/// <param name="commandtype">命令对象</param>
/// <returns>dt</returns>
public static DataTable Executetable(string com, CommandType commandtype)
{
DataSet ds=null;
DataTable dt=null;
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
IDbCommand comm = Createcommand(com, commandtype, Connstring,conn);
IDbDataAdapter adapter = Createadapter(comm, Connstring);
ds = new DataSet();
adapter.Fill(ds);
dt = ds.Tables[0];
}
}
catch (Exception ee)
{
throw ee;
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return dt;
}
/// <summary>
/// 返回一个DataTable对象
/// </summary>
/// <param name="com">Sql语句或存储过程名</param>
/// <param name="commandtype">命令对象</param>
/// <param name="param">参数数组</param>
/// <returns>dt</returns>
public static DataTable Executetable(string com, CommandType commandtype, IDataParameter[] param)
{
DataSet ds=null;
DataTable dt=null;
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
IDbCommand comm = Createcommand(com, commandtype, Connstring, param, conn);
IDbDataAdapter adapter = Createadapter(comm, Connstring);
ds = new DataSet();
adapter.Fill(ds);
dt = ds.Tables[0];
}
}
catch (Exception ee)
{
throw ee;
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
}
return dt;
}
public static void Closeconnection()
{
if (conn.State == ConnectionState.Closed)
{
conn.Close();
}
}
//继续更新中。。。。。
}
}
ASP.NET(C#)通用数据库类
最新推荐文章于 2013-08-19 09:54:00 发布
本文介绍了一个通用的数据访问层实现,支持多种数据库类型的连接与数据操作,包括查询、更新及数据填充等常用功能。
551

被折叠的 条评论
为什么被折叠?



