ASP.NET(C#)通用数据库类
来源:互联网 发布:中电数据 李世峰 编辑:程序博客网 时间:2024/05/22 11:30
ASP.NET(C#)通用数据库类
作者:Clefoo
最近在学习数据库基础,随手做出来的,大家帮我看看哪里还需要修改,如果你们有用的着的地方请复制粘贴吧.
如果写的东西没有达到您的要求,请谅解!小弟我水品有限!但是千万不要恶语相向啊,真会受不了的!
---------.NET Framework 2.0下(ACCESS和SqlServer数据库)测试通过
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 = "";
if (conn.State == ConnectionState.Closed)
{
try
{
conn.Open();
IDbCommand comm = Createcommand(com, commandtype, Connstring, conn);
if (comm.ExecuteScalar() != null)
{
str = comm.ExecuteScalar().ToString();
}
}
catch(Exception ee)
{
throw ee;
}
finally
{
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 = "";
if (conn.State == ConnectionState.Closed)
{
try
{
conn.Open();
IDbCommand comm = Createcommand(com, commandtype, Connstring,param,conn);
if (comm.ExecuteScalar() != null)
{
str = comm.ExecuteScalar().ToString();
}
}
catch (Exception ee)
{
throw ee;
}
finally
{
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;
if (conn.State == ConnectionState.Closed)
{
try
{
conn.Open();
IDbCommand comm = Createcommand(com, commandtype, Connstring,conn);
icount = comm.ExecuteNonQuery();
}
catch (Exception ee)
{
throw ee;
}
finally
{
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;
if (conn.State == ConnectionState.Closed)
{
try
{
conn.Open();
IDbCommand comm = Createcommand(com, commandtype, Connstring,param,conn);
icount= comm.ExecuteNonQuery();
}
catch (Exception ee)
{
throw ee;
}
finally
{
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;
if (conn.State == ConnectionState.Closed)
{
try
{
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;
if (conn.State == ConnectionState.Closed)
{
try
{
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;
if (conn.State == ConnectionState.Closed)
{
try
{
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
{
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;
if (conn.State == ConnectionState.Closed)
{
try
{
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
{
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;
if (conn.State == ConnectionState.Closed)
{
try
{
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
{
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;
if (conn.State == ConnectionState.Closed)
{
try
{
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
{
conn.Close();
}
}
return dt;
}
public static void Closeconnection()
{
if (conn.State == ConnectionState.Closed)
{
conn.Close();
}
}
//继续更新中。。。。。
}
}
- ASP.NET(C#)通用数据库类
- ASP.NET(C#)通用数据库类
- ASP.NET(C#)通用数据库类
- SQL数据库通用访问类(ASP.NET)
- asp.net中数据库操作通用类
- ASP.NET通用数据库访问类
- 通用分页类 (asp.net C#)
- 通用分页类 (asp.net C#)
- C#.NET操作数据库通用类
- 一个带有页码的通用ASP.NET分页类,支持数据库分页(C#)
- ASP.NET对SQLServer的通用数据库访问类
- Access 通用数据访问类(asp.net 2.0 c#)
- Access 通用数据访问类(asp.net 2.0 c#)
- Access 通用数据访问类(asp.net 2.0 c#)
- Asp.net中打造通用数据访问类(c#)
- Asp.net中打造通用数据访问类(c#)
- Asp.net中打造通用数据访问类(c#)
- Access 通用数据访问类(asp.net 2.0 c#)
- C# 遍历指定文件夹的所有文件 文件夹 (3句搞定!)
- JAVA运行时的堆内存设定
- LCA算法--并查集应用
- .NET正则基础之——平衡组
- java文件操作总汇
- ASP.NET(C#)通用数据库类
- Microsoft Team Foundation Server 2008 Power Tools
- oracle数据还原与备份
- 链表有关的题目
- Linux的变量可分为两类:环境变量和本地变量
- epoll在ET模式下的一些注意事项
- 定义判断题--总结
- JS代码:在select插入option
- JSP简介