登录  /  注册

ASP.NET之数据访问类代码详解

Y2J
发布: 2017-04-27 10:08:49
原创
1301人浏览过

using System; 
using System.Data; 
using System.Data.SqlClient;  
namespace SysClassLibrary 
{ 
/// <summary> 
/// DataAccess 的摘要说明。 
/// <description>数据处理基类,调用方式:DataAccess.DataSet((string)sqlstr);或者DataAccess.DataSet((string)sqlstr,ref DataSet ds); </description> 
/// </summary> 
public class DataAccess 
{ 
#region 属性 
protected static SqlConnection conn=new SqlConnection(); 
protected static SqlCommand comm=new SqlCommand(); 
#endregion 
public DataAccess() 
{ 
//init(); 
} 
#region 内部函数 静态方法中不会执行DataAccess()构造函数 
/// <summary> 
/// 打开数据库连接 
/// </summary> 
private static void openConnection() 
{ 
if (conn.State == ConnectionState.Closed) 
{ 
//SysConfig.ConnectionString 为系统配置类中连接字符串,如:"server=localhost;database=databasename;uid=sa;pwd=;" 
conn.ConnectionString = SysConfig.ConnectionString ; 
comm.Connection =conn; 
try 
{ 
conn.Open(); 
} 
catch(Exception e) 
{ 
throw new Exception(e.Message); 
} 
} 
} 
/// <summary> 
/// 关闭当前数据库连接 
/// </summary> 
private static void closeConnection() 
{ 
if(conn.State == ConnectionState.Open) 
conn.Close(); 
conn.Dispose(); 
comm.Dispose(); 
} 
#endregion 
/// <summary> 
/// 执行Sql查询语句 
/// </summary> 
/// <param name="sqlstr">传入的Sql语句</param> 
public static void ExecuteSql(string sqlstr) 
{ 
try 
{ 
openConnection(); 
comm.CommandType =CommandType.Text ; 
comm.CommandText =sqlstr; 
comm.ExecuteNonQuery();  
} 
catch(Exception e) 
{ 
throw new Exception(e.Message); 
} 
finally 
{ 
closeConnection(); 
} 
} 
/// <summary> 
/// 执行存储过程 
/// </summary> 
/// <param name="procName">存储过程名</param> 
/// <param name="coll">SqlParameters 集合</param> 
public static void ExecutePorcedure(string procName,SqlParameter[] coll) 
{ 
try 
{ 
openConnection(); 
for(int i=0;i<coll.Length;i++) 
{ 
comm.Parameters .Add(coll); 
} 
comm.CommandType=CommandType.StoredProcedure ; 
comm.CommandText =procName; 
comm.ExecuteNonQuery(); 
} 
catch(Exception e) 
{ 
throw new Exception(e.Message); 
} 
finally 
{ 
comm.Parameters.Clear(); 
closeConnection(); 
} 
} 
/// <summary> 
/// 执行存储过程并返回数据集 
/// </summary> 
/// <param name="procName">存储过程名称</param> 
/// <param name="coll">SqlParameter集合</param> 
/// <param name="ds">DataSet </param> 
public static void ExecutePorcedure(string procName,SqlParameter[] coll,ref DataSet ds) 
{ 
try 
{ 
SqlDataAdapter da=new SqlDataAdapter(); 
openConnection(); 
for(int i=0;i<coll.Length;i++) 
{ 
comm.Parameters .Add(coll); 
} 
comm.CommandType=CommandType.StoredProcedure ; 
comm.CommandText =procName; 
da.SelectCommand =comm; 
da.Fill(ds); 
} 
catch(Exception e) 
{ 
throw new Exception(e.Message); 
} 
finally 
{ 
comm.Parameters.Clear(); 
closeConnection(); 
} 
} 
/// <summary> 
/// 执行Sql查询语句并返回第一行的第一条记录,返回值为object 使用时需要拆箱操作 -> Unbox 
/// </summary> 
/// <param name="sqlstr">传入的Sql语句</param> 
/// <returns>object 返回值 </returns> 
public static object ExecuteScalar(string sqlstr) 
{ 
object obj=new object(); 
try 
{ 
openConnection(); 
comm.CommandType =CommandType.Text ; 
comm.CommandText =sqlstr; 
obj=comm.ExecuteScalar();  
} 
catch(Exception e) 
{ 
throw new Exception(e.Message); 
} 
finally 
{ 
closeConnection(); 
} 
return obj; 
} 
/// <summary> 
/// 执行Sql查询语句,同时进行事务处理 
/// </summary> 
/// <param name="sqlstr">传入的Sql语句</param> 
public static void ExecuteSqlWithTransaction(string sqlstr) 
{ 
SqlTransaction trans ; 
trans=conn.BeginTransaction(); 
comm.Transaction =trans; 
try 
{ 
openConnection(); 
comm.CommandType =CommandType.Text ; 
comm.CommandText =sqlstr; 
comm.ExecuteNonQuery();  
trans.Commit(); 
} 
catch 
{ 
trans.Rollback(); 
} 
finally 
{ 
closeConnection(); 
} 
} 
/// <summary> 
/// 返回指定Sql语句的SqlDataReader,请注意,在使用后请关闭本对象,同时将自动调用closeConnection()来关闭数据库连接 
/// 方法关闭数据库连接 
/// </summary> 
/// <param name="sqlstr">传入的Sql语句</param> 
/// <returns>SqlDataReader对象</returns> 
public static SqlDataReader dataReader(string sqlstr) 
{ 
SqlDataReader dr=null; 
try 
{ 
openConnection(); 
comm.CommandText =sqlstr; 
comm.CommandType =CommandType.Text ; 
dr=comm.ExecuteReader(CommandBehavior.CloseConnection);  
} 
catch 
{ 
try 
{ 
dr.Close(); 
closeConnection(); 
} 
catch 
{ 
} 
} 
return dr; 
} 
/// <summary> 
/// 返回指定Sql语句的SqlDataReader,请注意,在使用后请关闭本对象,同时将自动调用closeConnection()来关闭数据库连接 
/// 方法关闭数据库连接 
/// </summary> 
/// <param name="sqlstr">传入的Sql语句</param> 
/// <param name="dr">传入的ref DataReader 对象</param> 
public static void dataReader(string sqlstr,ref SqlDataReader dr) 
{ 
try 
{ 
openConnection(); 
comm.CommandText =sqlstr; 
comm.CommandType =CommandType.Text ; 
dr=comm.ExecuteReader(CommandBehavior.CloseConnection);  
} 
catch 
{ 
try 
{ 
if(dr!=null && !dr.IsClosed) 
dr.Close(); 
} 
catch 
{ 
} 
finally 
{ 
closeConnection(); 
} 
} 
} 
/// <summary> 
/// 返回指定Sql语句的DataSet 
/// </summary> 
/// <param name="sqlstr">传入的Sql语句</param> 
/// <returns>DataSet</returns> 
public static DataSet dataSet(string sqlstr) 
{ 
DataSet ds= new DataSet(); 
SqlDataAdapter da=new SqlDataAdapter(); 
try 
{ 
openConnection(); 
comm.CommandType =CommandType.Text ; 
comm.CommandText =sqlstr; 
da.SelectCommand =comm; 
da.Fill(ds); 
} 
catch(Exception e) 
{ 
throw new Exception(e.Message);  
} 
finally 
{ 
closeConnection(); 
} 
return ds; 
} 
/// <summary> 
/// 返回指定Sql语句的DataSet 
/// </summary> 
/// <param name="sqlstr">传入的Sql语句</param> 
/// <param name="ds">传入的引用DataSet对象</param> 
public static void dataSet(string sqlstr,ref DataSet ds) 
{ 
SqlDataAdapter da=new SqlDataAdapter(); 
try 
{ 
openConnection(); 
comm.CommandType =CommandType.Text ; 
comm.CommandText =sqlstr; 
da.SelectCommand =comm; 
da.Fill(ds); 
} 
catch(Exception e) 
{ 
throw new Exception(e.Message);  
} 
finally 
{ 
closeConnection(); 
} 
} 
/// <summary> 
/// 返回指定Sql语句的DataTable 
/// </summary> 
/// <param name="sqlstr">传入的Sql语句</param> 
/// <returns>DataTable</returns> 
public static DataTable dataTable(string sqlstr) 
{ 
SqlDataAdapter da=new SqlDataAdapter(); 
DataTable datatable=new DataTable(); 
try 
{ 
openConnection(); 
comm.CommandType =CommandType.Text ; 
comm.CommandText =sqlstr; 
da.SelectCommand =comm; 
da.Fill(datatable); 
} 
catch(Exception e) 
{ 
throw new Exception(e.Message);  
} 
finally 
{ 
closeConnection(); 
} 
return datatable; 
} 
/// <summary> 
/// 执行指定Sql语句,同时给传入DataTable进行赋值  
/// </summary> 
/// <param name="sqlstr">传入的Sql语句</param> 
/// <param name="dt">ref DataTable dt </param> 
public static void dataTable(string sqlstr,ref DataTable dt) 
{ 
SqlDataAdapter da=new SqlDataAdapter(); 
try 
{ 
openConnection(); 
comm.CommandType =CommandType.Text ; 
comm.CommandText =sqlstr; 
da.SelectCommand =comm; 
da.Fill(dt); 
} 
catch(Exception e) 
{ 
throw new Exception(e.Message);  
} 
finally 
{ 
closeConnection(); 
} 
} 
/// <summary> 
/// 执行带参数存储过程并返回数据集合 
/// </summary> 
/// <param name="procName">存储过程名称</param> 
/// <param name="parameters">SqlParameterCollection 输入参数</param> 
/// <returns></returns> 
public static DataTable dataTable(string procName,SqlParameterCollection parameters) 
{  
SqlDataAdapter da=new SqlDataAdapter(); 
DataTable datatable=new DataTable(); 
try 
{ 
openConnection(); 
comm.Parameters.Clear(); 
comm.CommandType=CommandType.StoredProcedure ; 
comm.CommandText =procName; 
foreach(SqlParameter para in parameters) 
{ 
SqlParameter p=(SqlParameter)para; 
comm.Parameters.Add(p); 
} 
da.SelectCommand =comm; 
da.Fill(datatable); 
} 
catch(Exception e) 
{ 
throw new Exception(e.Message); 
} 
finally 
{ 
closeConnection(); 
} 
return datatable; 
} 
public static DataView dataView(string sqlstr) 
{ 
SqlDataAdapter da=new SqlDataAdapter(); 
DataView dv=new DataView(); 
DataSet ds=new DataSet(); 
try 
{ 
openConnection(); 
comm.CommandType=CommandType.Text; 
comm.CommandText =sqlstr; 
da.SelectCommand =comm; 
da.Fill(ds); 
dv=ds.Tables[0].DefaultView; 
} 
catch(Exception e) 
{ 
throw new Exception(e.Message); 
} 
finally 
{ 
closeConnection(); 
} 
return dv; 
} 
} 
}
登录后复制

以上就是ASP.NET之数据访问类代码详解的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号