日期:2014-05-18 浏览次数:20506 次
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.Transactions; namespace ChinaCustoms.Application.HD2007.DB { /// <summary> /// 数据库操作类. /// </summary> /// <remarks> /// 密封类,以防止被继承. /// 该类中所有成员均为static. /// </remarks> public sealed class SqlDatabase { /// <summary> /// 私有构造函数,以防止该类的实例化. /// </summary> private SqlDatabase() { } /// <summary> /// 获取数据库连接对象 /// </summary> /// <param name="connectionString">数据库连接字符串</param> /// <returns>IDbConnection对象</returns> public static IDbConnection GetConnectionObject(string connectionString) { return new SqlConnection(connectionString);//不一定new一个新的SqlConnection,可能会去连接池取. } #region ExecuteNonQuery /// <summary> /// 该方法可用以执行不需要输入参数的sql语句、存储过程. /// </summary> /// <remarks> /// 关于该方法的返回值: /// 1.sql语句 /// 对于insert、update、delete语句,将返回命令所影响的行数. /// 对于select等所有其他类型的语句,将返回-1. /// 如果发生会滚,也将返回-1. /// 2.存储过程 /// 同上 /// 该方法的推荐应用场景: /// 1.用于执行非select查询 /// </remarks> /// <param name="connectionObject">用于数据库连接的字符串或者直接是连接对象.</param> /// <param name="commandType">命令类型,为System.Data.CommandType枚举类型.</param> /// <param name="commandText">命令</param> /// <returns>受影响的行数</returns> public static int ExecuteNonQuery(object connectionObject, CommandType commandType, string commandText) { return ExecuteNonQuery(connectionObject, commandType, commandText, null); } /// <summary> /// 该方法可用以执行不需要输入参数的sql语句、存储过程. /// </summary> /// <remarks> /// 关于该方法的返回值: /// 1.sql语句 /// 对于insert、update、delete语句,将返回命令所影响的行数. /// 对于select等所有其他类型的语句,将返回-1. /// 如果发生会滚,也将返回-1. /// 2.存储过程 /// 同上 /// 该方法的推荐应用场景: /// 1.用于执行非select查询 /// </remarks> /// <param name="connectionObject">用于数据库连接的字符串或者直接是连接对象.</param> /// <param name="commandType">命令类型,为System.Data.CommandType枚举类型.</param> /// <param name="commandText">命令</param> /// <param name="commandTimeout">在终止执行命令的尝试并生成错误之前的等待时间.</param> /// <returns>受影响的行数</returns> public static int ExecuteNonQuery(object connectionObject, CommandType commandType, string commandText, int commandTimeout) { return ExecuteNonQuery(connectionObject, commandType, commandText, commandTimeout, null); } /// <summary> /// 该方法可用以执行需要输入参数的sql语句、存储过程. /// 通过该方法可得到命令的输出参数、@RETURN_VALUE.这些值通过方法的输入参数ParamCollection返回. /// </summary> /// <remarks> /// 关于该方法的返回值: /// 1.sql语句 /// 对于insert、update、delete语句,将返回命令所影响的行数. /// 对于select等所有其他类型的语句,将返回-1. /// 如果发生会滚,也将返回-1. /// 2.存储过程 /// 同上 /// 该方法的推荐应用场景: /// 1.用于执行非select查询 /// 2.需要返回命令的输出参数、@RETURN_VALUE的时候 /// </remarks> /// <param name="connectionObject">用于数据库连接的字符串或者直接是连接对象.</param> /// <param name="commandType">命令类型,为System.Data.CommandType枚举类型.</param>