日期:2014-05-18 浏览次数:20779 次
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>