微软提供的数据访问组件SqlHelperWord格式文档下载.docx

上传人:b****6 文档编号:19232825 上传时间:2023-01-04 格式:DOCX 页数:10 大小:29.37KB
下载 相关 举报
微软提供的数据访问组件SqlHelperWord格式文档下载.docx_第1页
第1页 / 共10页
微软提供的数据访问组件SqlHelperWord格式文档下载.docx_第2页
第2页 / 共10页
微软提供的数据访问组件SqlHelperWord格式文档下载.docx_第3页
第3页 / 共10页
微软提供的数据访问组件SqlHelperWord格式文档下载.docx_第4页
第4页 / 共10页
微软提供的数据访问组件SqlHelperWord格式文档下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

微软提供的数据访问组件SqlHelperWord格式文档下载.docx

《微软提供的数据访问组件SqlHelperWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《微软提供的数据访问组件SqlHelperWord格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。

微软提供的数据访问组件SqlHelperWord格式文档下载.docx

  

 

 

一、原程序:

//编号1usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Collections;

usingSystem.Data.SqlClient;

//编号2

/**////<

summary>

///数据库的通用访问代码

///此类为抽象类,不允许实例化,在应用时直接调用即可

///<

/summary>

publicabstractclassSqlHelper

...{

   //获取数据库连接字符串,其属于静态变量且只读,项目中所有文档可以直接使用,但不能修改

    

//编号13

   publicstaticreadonlystringConnectionStringLocalTransaction=

   ConfigurationManager.ConnectionStrings["

connstring"

].ConnectionString;

   //哈希表用来存储缓存的参数信息,哈希表可以存储任意类型的参数

//编号8

   privatestaticHashtableparmCache=Hashtable.Synchronized(newHashtable());

//编号9

   /**////<

   ///执行一个不需要返回值的SqlCommand命令,通过指定专用的连接字符串。

   ///使用参数数组形式提供参数列表 

   ///<

remarks>

   ///使用示例:

   /// intresult=ExecuteNonQuery(connString,CommandType.StoredProcedure,

   /// "

PublishOrders"

newSqlParameter("

@prodid"

24));

/remarks>

paramname="

connectionString"

>

一个有效的数据库连接字符串<

/param>

commandType"

SqlCommand命令类型(存储过程,T-SQL语句,等等。

) 

commandText"

存储过程的名字或者T-SQL语句<

commandParameters"

以数组形式提供SqlCommand命令中用到的参数列表

returns>

返回一个数值表示此SqlCommand命令执行后影响的行数<

/returns>

//编号3

   publicstaticintExecuteNonQuery(stringconnectionString,CommandTypecmdType,

   stringcmdText,paramsSqlParameter[]commandParameters)

   ...{

       SqlCommandcmd=newSqlCommand();

        

//编号4

       using(SqlConnectionconn=newSqlConnection(connectionString))

       ...{

           //通过PrePareCommand方法将参数逐个加入到SqlCommand的参数集合中

           PrepareCommand(cmd,conn,null,cmdType,cmdText,commandParameters);

           intval=cmd.ExecuteNonQuery();

           //清空SqlCommand中的参数列表

           cmd.Parameters.Clear();

//编号14

           returnval;

       }

   }

 

   ///执行一条不返回结果的SqlCommand,通过一个已经存在的数据库连接 

   ///使用参数数组提供参数

  

   ///intresult=ExecuteNonQuery(conn,CommandType.StoredProcedure, 

   ///"

conn"

一个现有的数据库连接<

 //编号5

   publicstaticintExecuteNonQuery(SqlConnectionconnection,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)

       PrepareCommand(cmd,connection,null,cmdType,cmdText,commandParameters);

       intval=cmd.ExecuteNonQuery();

       cmd.Parameters.Clear();

       returnval;

   ///执行一条不返回结果的SqlCommand,通过一个已经存在的数据库事物处理 

   /// intresult=ExecuteNonQuery(trans,CommandType.StoredProcedure, 

trans"

一个存在的sql事物处理<

//编号12

   publicstaticintExecuteNonQuery(SqlTransactiontrans,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)

       PrepareCommand(cmd,trans.Connection,trans,cmdType,cmdText,commandParameters);

   ///执行一条返回结果集的SqlCommand命令,通过专用的连接字符串。

   /// SqlDataReaderr=ExecuteReader(connString,CommandType.StoredProcedure, 

返回一个包含结果的SqlDataReader<

   publicstaticSqlDataReaderExecuteReader(stringconnectionString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)

//编号7

       SqlConnectionconn=newSqlConnection(connectionString);

       //在这里使用try/catch处理是因为如果方法出现异常,则SqlDataReader就不存在,

       //CommandBehavior.CloseConnection的语句就不会执行,触发的异常由catch捕获。

       //关闭数据库连接,并通过throw再次引发捕捉到的异常。

       try

           SqlDataReaderrdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);

           returnrdr;

       catch

           conn.Close();

           throw;

   ///执行一条返回第一条记录第一列的SqlCommand命令,通过专用的连接字符串。

   /// Objectobj=ExecuteScalar(connString,CommandType.StoredProcedure, 

返回一个object类型的数据,可以通过Convert.To{Type}方法转换类型<

   publicstaticobjectExecuteScalar(stringconnectionString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)

       using(SqlConnectionconnection=newSqlConnection(connectionString))

           PrepareCommand(cmd,connection,null,cmdType,cmdText,commandParameters);

           objectval=cmd.ExecuteScalar();

   ///执行一条返回第一条记录第一列的SqlCommand命令,通过已经存在的数据库连接。

   /// Objectobj=ExecuteScalar(connString,CommandType.StoredProcedure,

一个已经存在的数据库连接<

返回一个object类型的数据,可以通过Convert.To{Type}方法转换类型

   publicstaticobjectExecuteScalar(SqlConnectionconnection,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)

       objectval=cmd.ExecuteScalar();

   ///缓存参数数组

cacheKey"

参数缓存的键值<

cmdParms"

被缓存的参数列表<

   publicstaticvoidCacheParameters(stringcacheKey,paramsSqlParameter[]commandParameters)

//编号10

       parmCache[cacheKey]=commandParameters;

   ///获取被缓存的参数

用于查找参数的KEY值<

返回缓存的参数数组<

   publicstaticSqlParameter[]GetCachedParameters(stringcacheKey)

       SqlParameter[]cachedParms=(SqlParameter[])parmCache[cacheKey];

       if(cachedParms==null)

           returnnull;

       //新建一个参数的克隆列表

       SqlParameter[]clonedParms=newSqlParameter[cachedParms.Length];

       //通过循环为克隆参数列表赋值

       for(inti=0,j=cachedParms.Length;

i<

j;

i++)

           //使用clone方法复制参数列表中的参数 

//编号11

           clonedParms[i]=(SqlParameter)((ICloneable)cachedParms[i]).Clone();

       returnclonedParms;

   ///为执行命令准备参数

cmd"

SqlCommand命令<

已经存在的数据库连接<

数据库事物处理<

cmdType"

SqlCommand命令类型(存储过程,T-SQL语句,等等。

)<

cmdText"

Commandtext,T-SQL语句例如Select*from 

   ///Products<

返回带参数的命令<

//编号6

   privatestaticvoidPrepareCommand(SqlCommandcmd,SqlConnectionconn,SqlTransactiontrans,CommandTypecmdType,stringcmdText,SqlParameter[]

        cmdParms)

       //判断数据库连接状态

       if(conn.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 金融投资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1