zoukankan
html css js c++ java
ASP.NET 数据访问类 SQLSERVER
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();
}
内部函数 静态方法中不会执行DataAccess()构造函数
#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[i]);
}
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[i]);
}
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;
}
}
}
查看全文
相关阅读:
java中使用静态字段和构造函数跟踪某个类所创建对象的个数
java中静态初始化块的执行顺序
Java字段初始化的规律
java web第一次课堂测试1
java课极限测试
对于java中反编译命令的使用以及Integer包装类的查看
在java的静态方法中访问类的实例成员
[Android开发] 获取Android的Google Map API密钥
[Android开发] 整合不同版本的android project的方法
比特,字节和像素之间的关系
原文地址:https://www.cnblogs.com/kokoliu/p/487906.html
最新文章
新浪网遭攻击瘫痪500分钟 被迫答应黑客要求
无废话JavaScript(下)
Gmail推出视频聊天功能 间接否认欲收购Skype
09年关于微软10大预测 Windows7销量将好于Vista
VCL已死,RAD已死(1)
Qomo之快速上手
谷歌云计算推广互联网新理念
django rest framework 入门
python chinese code
django rest framework
热门文章
python BeautifulSoup4
Install R & RStudio for Ubuntu
mysql php query steps
python regrex
shell text process code
mysql forget root password
mysql support chinese
为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不能反过来?
java中关于类和对象的一些思考
关于java继承条件下的构造方法调用
Copyright © 2011-2022 走看看