zoukankan
html css js c++ java
[ASP.net]数据访层 (转)
原文:
http://www.cnblogs.com/hd/archive/2005/03/30/127905.html
DbConnection.cs
using
System;
using
System.Data.SqlClient;
namespace
DbControl
{
/**/
///
<summary>
///
数据库链接
///
</summary>
public
class
DbConnection
{
//
SQL数据库链接字符串
private
string
_strSqlConnection
=
System.Configuration.ConfigurationSettings.AppSettings[
"
SqlConnectionString
"
];
//
XML文件链接字符串
private
string
_strXmlConnection
=
string
.Empty;
public
string
ConnectionString
{
get
{
return
_strSqlConnection;
}
set
{
this
._strSqlConnection
=
System.Configuration.ConfigurationSettings.AppSettings[ value ];
}
}
public
SqlConnection SqlConnectionString
{
get
{
return
new
SqlConnection( ConnectionString );
}
}
public
string
XmlConnectionString
{
get
{
return
this
._strXmlConnection;
}
set
{
this
._strXmlConnection
=
value;
}
}
public
DbConnection()
{
//
//
TODO: 在此处添加构造函数逻辑
//
}
}
}
AppControl.cs
using
System;
using
System.Data;
using
System.Data.SqlClient;
namespace
DbControl
{
/**/
///
<summary>
///
AppControl 的摘要说明。
///
</summary>
public
class
SqlControl : DbConnection
{
private
SqlConnection _Conn;
private
SqlCommand _Cmd;
public
SqlControl()
{
//
//
TODO: 在此处添加构造函数逻辑
//
}
/**/
///
<summary>
///
打开数据库链接
///
</summary>
private
void
Open()
{
this
._Conn
=
this
.SqlConnectionString;
try
{
_Conn.Open();
}
catch
( System.Exception ex )
{
throw
ex;
}
}
/**/
///
<summary>
///
关闭数据库链接
///
</summary>
private
void
Close()
{
try
{
this
._Conn.Close();
}
catch
( System.Exception ex )
{
throw
ex;
}
}
/**/
///
<summary>
///
运行SQL,返回DataTable数据
///
</summary>
///
<param name="query">
SQL语句
</param>
///
<returns>
返回DataTable
</returns>
public
DataTable RunSqlToDataTable(
string
query )
{
this
.Open();
DataTable objDataTable
=
new
DataTable();
SqlDataAdapter objAdapter
=
new
SqlDataAdapter( query , _Conn );
try
{
objAdapter.Fill( objDataTable );
}
catch
( System.Exception ex )
{
throw
ex;
}
finally
{
this
.Close();
}
return
objDataTable;
}
/**/
///
<summary>
///
执行SQL语句,返回单个值
///
</summary>
///
<param name="query">
标准T-SQL语句
</param>
///
<returns>
返回string
</returns>
public
string
RunSqlToResult(
string
query )
{
this
.Open();
this
._Cmd
=
new
SqlCommand( query,
this
._Conn );
System.Text.StringBuilder strResult
=
new
System.Text.StringBuilder();
try
{
strResult.Append(
this
._Cmd.ExecuteScalar() );
}
catch
( System.Exception ex )
{
throw
ex;
}
finally
{
this
.Close();
}
return
strResult.ToString();
}
/**/
///
<summary>
///
运行单个SQL的相关操作
///
</summary>
///
<param name="query">
SQL语句
</param>
///
<returns>
返回AppControl
</returns>
public
SqlControl ExecuteNonQuery(
string
query )
{
this
.Open();
_Cmd
=
new
SqlCommand( query , _Conn );
try
{
_Cmd.ExecuteNonQuery();
}
catch
( System.Exception ex )
{
throw
ex;
}
finally
{
this
.Close();
}
return
this
;
}
/**/
///
<summary>
///
按事务执行SQL语句数组
///
</summary>
///
<param name="query">
标准T-SQL语句数组
</param>
///
<returns>
返回AppControl
</returns>
public
SqlControl ExecuteNonQuery(
string
[] query )
{
this
.Open();
this
._Cmd
=
new
SqlCommand();
SqlTransaction objTran
=
this
._Conn.BeginTransaction();
this
._Cmd.Connection
=
this
._Conn;
this
._Cmd.Transaction
=
objTran;
try
{
for
(
int
i
=
0
; i
<
query.Length ; i
++
)
{
this
._Cmd.CommandText
=
query[i];
this
._Cmd.ExecuteNonQuery();
}
objTran.Commit();
}
catch
( System.Exception ex )
{
objTran.Rollback();
throw
ex;
}
finally
{
this
.Close();
}
return
this
;
}
/**/
///
<summary>
///
执行SQL语句,返回SqlDataReader.
///
</summary>
///
<param name="query">
标准SQL语句
</param>
///
<returns>
返回DataReader
</returns>
public
SqlDataReader RunSqlToDataReader(
string
query )
{
this
.Open();
this
._Cmd
=
new
SqlCommand( query ,
this
._Conn );
SqlDataReader objDataReader;
try
{
objDataReader
=
this
._Cmd.ExecuteReader();
}
catch
( System.Exception ex )
{
throw
ex;
}
finally
{
this
.Close();
}
return
objDataReader;
}
/**/
///
<summary>
///
运行存储过程(有参数,无输出)
///
</summary>
///
<param name="procedureName">
存储过程名
</param>
///
<param name="parameters">
存储过程参数数组
</param>
///
<returns>
返回AppControl
</returns>
public
SqlControl RunProcedure(
string
procedureName,SqlParameter[] parameters )
{
this
.Open();
this
._Cmd
=
this
.MakeProcedure( procedureName,parameters );
try
{
this
._Cmd.ExecuteNonQuery();
}
catch
( System.Exception ex )
{
throw
ex;
}
finally
{
this
.Close();
}
return
this
;
}
/**/
///
<summary>
///
运行存储过程(无参数,无输出)
///
</summary>
///
<param name="procedureName">
存储过程名
</param>
///
<returns>
返回AppControl
</returns>
public
SqlControl RunProcedure(
string
procedureName )
{
this
.Open();
this
._Cmd
=
this
.MakeProcedure( procedureName,
null
);
try
{
this
._Cmd.ExecuteNonQuery();
}
catch
( System.Exception ex )
{
throw
ex;
}
finally
{
this
.Close();
}
return
this
;
}
/**/
///
<summary>
///
运行存储过程(无参数,有输出)
///
</summary>
///
<param name="procedureName">
存储过程名
</param>
///
<param name="parametersOutput">
存储过程输出参数数组
</param>
///
<returns>
返回AppControl
</returns>
public
SqlControl RunProcedure(
string
procedureName,
ref
SqlParameter[] parametersOutput )
{
this
.Open();
this
._Cmd
=
this
.MakeProcedure( procedureName,parametersOutput );
try
{
this
._Cmd.ExecuteNonQuery();
}
catch
( System.Exception ex )
{
throw
ex;
}
finally
{
this
.Close();
}
return
this
;
}
/**/
///
<summary>
///
运行存储过程(有参数,无输出)
///
</summary>
///
<param name="procedureName">
存储过程名
</param>
///
<param name="parameters">
存储过程参数数组
</param>
///
<returns>
返回DataTable
</returns>
public
DataTable RunProcedureToDataTable(
string
procedureName,SqlParameter[] parameters )
{
this
.Open();
this
._Cmd
=
this
.MakeProcedure( procedureName,parameters );
DataTable objDataTable
=
new
DataTable();
try
{
this
._Cmd.ExecuteNonQuery();
SqlDataAdapter objAdapter
=
new
SqlDataAdapter(
this
._Cmd );
objAdapter.Fill( objDataTable );
}
catch
( System.Exception ex )
{
throw
ex;
}
finally
{
this
.Close();
}
return
objDataTable;
}
/**/
///
<summary>
///
运行存储过程(有参数,有输出)
///
</summary>
///
<param name="procedureName">
存储过程名
</param>
///
<param name="parametersInput">
存储过程输入参数数组
</param>
///
<param name="parametersOutput">
存储过程输出参数数组
</param>
///
<returns>
返回DataTable
</returns>
public
DataTable RunProcedureToDataTable(
string
procedureName,SqlParameter[] parametersInput,
ref
SqlParameter[] parametersOutput )
{
this
.Open();
this
._Cmd
=
this
.MakeProcedure( procedureName,parametersInput );
if
( parametersOutput
!=
null
)
{
foreach
( SqlParameter parameter
in
parametersOutput )
{
this
._Cmd.Parameters.Add( parameter );
}
}
DataTable objDataTable
=
new
DataTable();
try
{
this
._Cmd.ExecuteNonQuery();
SqlDataAdapter objAdapter
=
new
SqlDataAdapter(
this
._Cmd );
objAdapter.Fill( objDataTable );
}
catch
( System.Exception ex )
{
throw
ex;
}
finally
{
this
.Close();
}
return
objDataTable;
}
/**/
///
<summary>
///
运行存储过程(无参数)
///
</summary>
///
<param name="procedureName">
存储过程名
</param>
///
<returns>
返回DataTable
</returns>
public
DataTable RunProcedureToDataTable(
string
procedureName )
{
this
.Open();
this
._Cmd
=
this
.MakeProcedure( procedureName,
null
);
DataTable objDataTable
=
new
DataTable();
try
{
this
._Cmd.ExecuteNonQuery();
SqlDataAdapter objAdapter
=
new
SqlDataAdapter(
this
._Cmd );
objAdapter.Fill( objDataTable );
}
catch
( System.Exception ex )
{
throw
ex;
}
finally
{
this
.Close();
}
return
objDataTable;
}
/**/
///
<summary>
///
建立存储过程
///
</summary>
///
<param name="procedureName">
存储过程名
</param>
///
<param name="parameters">
存储过程参数数组
</param>
///
<returns>
返回AppControl
</returns>
private
SqlCommand MakeProcedure(
string
procedureName,SqlParameter[] parameters )
{
SqlCommand objCmd
=
new
SqlCommand( procedureName,
this
._Conn );
objCmd.CommandType
=
CommandType.StoredProcedure;
if
( parameters
!=
null
)
{
foreach
( SqlParameter sqlParamet
in
parameters )
{
objCmd.Parameters.Add( sqlParamet );
}
}
return
objCmd;
}
/**/
///
<summary>
///
多表查询
///
</summary>
///
<param name="query">
标准SQL语句集
</param>
///
<returns>
返回DataSet
</returns>
public
DataSet RunSqlToDataSet(
string
[] query )
{
this
.Open();
DataSet objDataSet
=
new
DataSet();
SqlDataAdapter objAdapter
=
new
SqlDataAdapter();
this
._Cmd
=
new
SqlCommand();
this
._Cmd.Connection
=
this
._Conn;
objAdapter.SelectCommand
=
this
._Cmd;
try
{
for
(
int
i
=
0
; i
<
query.Length ; i
++
)
{
objAdapter.SelectCommand.CommandText
=
query[i];
objAdapter.Fill( objDataSet.Tables.Add() );
}
}
catch
( System.Exception ex )
{
throw
ex;
}
finally
{
this
.Close();
}
return
objDataSet;
}
}
}
查看全文
相关阅读:
Apollo的Oracle适配改动
尝试Java,从入门到Kotlin(下)
尝试Java,从入门到Kotlin(上)
RabbitMQ权限控制原理
一文彻底掌握二叉查找树(多组动图)(史上最全总结)
图解:深度优先搜索与广度优先搜索及其六大应用
图解:如何理解与实现散列表
图解:什么是“图”?
查找算法系列文(一)一文入门二叉树
线性表(数组、链表、队列、栈)详细总结
原文地址:https://www.cnblogs.com/dagon007/p/159271.html
最新文章
死磕synchronized底层实现
《程序人生》一个月了,我要谢谢,你、你、还有你
《吊打面试官》系列-Redis哨兵、持久化、主从、手撕LRU
《吊打面试官》系列-Redis基础
Docker搭建部署Node项目
Flutter轮播图
Flutter开发初探
路径动画
使用typescript改造koa开发框架
WebGL之物体选择
热门文章
WebGL学习之HDR与Bloom
WebGL学习之纹理盒
WebGL半透明物体的绘制
WebGL学习之法线贴图
逻辑式编程语言极简实现(使用C#)
逻辑式编程语言极简实现(使用C#)
逻辑式编程语言极简实现(使用C#)
逻辑式编程语言极简实现(使用C#)
一文详解微服务架构
Istio入门实战与架构原理——使用Docker Compose搭建Service Mesh
Copyright © 2011-2022 走看看