using System.Data;
using System.Data.SqlClient;
namespace Dal
{
///<summary>
///数据处理类。
///</summary>
public class DataClass
{
public static SqlConnection con = new SqlConnection();
private static SqlCommand cmd = new SqlCommand();
public DataClass(string conStr)
{
con.ConnectionString = conStr;
}
///<summary>
///打开数据库连接。
///</summary>
public void OpenConnection()
{
if(con.State!=ConnectionState.Open)
{
con.Open();
}
}
///<summary>
///关闭与数据库的连接。
///</summary>
public void CloseConnection()
{
con.Close();
}
private static void PrepareCommand(string procName,SqlTransaction trans,SqlParameter[] parms)
{
cmd.Connection = con;
cmd.CommandText = procName;
if(trans != null)
cmd.Transaction = trans;
cmd.CommandType = CommandType.StoredProcedure;
if(parms!=null)
{
foreach (SqlParameter parm in parms)
cmd.Parameters.Add(parm);
}
}
#region 执行查询,并返回查询所返回的结果集中第一行的第一列,忽略额外的列或行,ExecuteScalar。
///<summary>
///执行查询,并返回查询所返回的结果集中第一行的第一列,忽略额外的列或行。
///</summary>
///<param name="procName">存储过程</param>
///<param name="parms">SqlParameter数组</param>
///<returns>ExecuteScalar</returns>
public object cmdExecScalarProc(string procName,SqlParameter[] parms)
{
object obj = new object();
PrepareCommand(procName,null,parms);
OpenConnection();
obj = cmd.ExecuteScalar();
CloseConnection();
cmd.Parameters.Clear();
return obj;
}
///<summary>
///执行查询,并返回查询所返回的结果集中第一行的第一列,忽略额外的列或行。
///</summary>
///<param name="procName">存储过程</param>
///<param name="parms">SqlParameter数组</param>
///<param name="trans">SQL Server 数据库中处理的 Transact-SQL 事务</param>
///<returns>ExecuteScalar</returns>
public object cmdExecScalarProc(string procName,SqlParameter[] parms,SqlTransaction trans)
{
object obj = new object();
PrepareCommand(procName,trans,parms);
OpenConnection();
obj = cmd.ExecuteScalar();
CloseConnection();
cmd.Parameters.Clear();
return obj;
}
#endregion
#region 对连接执行 Transact-SQL 语句,ExecuteNonQuery。
///<summary>
///对连接执行 Transact-SQL 语句。
///</summary>
///<param name="procName">存储过程</param>
///<param name="parms">SqlParameter数组</param>
public void cmdExecNonQueryProc(string procName,SqlParameter[] parms)
{
PrepareCommand(procName,null,parms);
OpenConnection();
cmd.ExecuteNonQuery();
CloseConnection();
cmd.Parameters.Clear();
}
///<summary>
///对连接执行 Transact-SQL 语句。
///</summary>
///<param name="procName">存储过程</param>
///<param name="parms">SqlParameter数组</param>
///<param name="trans">SQL Server 数据库中处理的 Transact-SQL 事务</param>
public void cmdExecNonQueryProc(string procName,SqlParameter[] parms,SqlTransaction trans)
{
PrepareCommand(procName,trans,parms);
OpenConnection();
cmd.ExecuteNonQuery();
CloseConnection();
cmd.Parameters.Clear();
}
#endregion
#region 返回SqlDataReader。
///<summary>
///返回SqlDataReader,在使用后请关闭本对象,同时将自动调用CloseConnection()来关闭数据库连接。
///</summary>
///<param name="procName">存储过程</param>
///<param name="parms">SqlParameter数组</param>
///<returns>SqlDataReader对象</returns>
public SqlDataReader DataReader(string procName)
{
SqlDataReader dr = null;
PrepareCommand(procName,null,null);
OpenConnection();
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return dr ;
}
///<summary>
///返回SqlDataReader,在使用后请关闭本对象,同时将自动调用CloseConnection()来关闭数据库连接。
///</summary>
///<param name="procName">存储过程</param>
///<param name="parms">SqlParameter数组</param>
///<returns>SqlDataReader对象</returns>
public SqlDataReader DataReader(string procName,SqlParameter[] parms)
{
SqlDataReader dr = null;
PrepareCommand(procName,null,parms);
OpenConnection();
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return dr ;
}
///<summary>
///返回SqlDataReader,在使用后请关闭本对象,同时将自动调用CloseConnection()来关闭数据库连接。
///</summary>
///<param name="procName">存储过程</param>
///<param name="trans">SQL Server 数据库中处理的 Transact-SQL 事务</param>
///<returns>SqlDataReader对象</returns>
public SqlDataReader DataReader(string procName,SqlTransaction trans)
{
SqlDataReader dr = null;
PrepareCommand(procName,trans,null);
OpenConnection();
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return dr ;
}
///<summary>
///返回SqlDataReader,在使用后请关闭本对象,同时将自动调用CloseConnection()来关闭数据库连接。
///</summary>
///<param name="procName">存储过程</param>
///<param name="parms">SqlParameter数组</param>
///<param name="trans">SQL Server 数据库中处理的 Transact-SQL 事务</param>
///<returns>SqlDataReader对象</returns>
public SqlDataReader DataReader(string procName,SqlParameter[] parms,SqlTransaction trans)
{
SqlDataReader dr = null;
PrepareCommand(procName,trans,parms);
OpenConnection();
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return dr ;
}
#endregion
#region 返回内存数据中的一个表,DataTable。
///<summary>
///返回内存数据中的一个表。
///</summary>
///<param name="procName">存储过程</param>
///<returns>DataTable</returns>
public DataTable dt(string procName)
{
SqlDataAdapter da = new SqlDataAdapter(procName,con);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
///<summary>
///返回内存数据中的一个表。
///</summary>
///<param name="procName">存储过程</param>
///<param name="parms">SqlParameter数组</param>
///<returns>DataTable</returns>
public DataTable dt(string procName,SqlParameter[] parms)
{
SqlDataAdapter da = new SqlDataAdapter(procName,con);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
DataTable dt = new DataTable();
for(int i = 0;i < parms.Length;i++)
{
da.SelectCommand.Parameters.Add(parms[i]);
}
da.Fill(dt);
cmd.Parameters.Clear();
return dt;
}
#endregion
}
}
本文不断更新中……