C#访问数据库的类
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data.ProviderBase;
{
public class Conn
{
SqlConnection MyConn ;
/// <summary>
/// 构造函数
/// </summary>
public Conn()
{
/// Conf配置访问类
MyConn = new SqlConnection(Conf.StrConn);
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="strConn">连接字符串</param>
public Conn(string strConn)
{
MyConn = new SqlConnection(strConn);
}
/// <summary>
/// 获取/设置数据库连接字符串
/// </summary>
public string StrConn
{
get
{
return MyConn.ConnectionString;
}
set
{
MyConn.ConnectionString = value;
}
}
/// <summary>
/// 执行SQL语句返回记录集
/// </summary>
/// <param name="SQL">SQL语句</param>
/// <returns>DataSet</returns>
public DataSet GetSet(string SQL)
{
SqlDataAdapter dpt ;
DataSet ds = new DataSet();
try
{
Open();
dpt = new SqlDataAdapter(SQL, MyConn);
dpt.Fill(ds);
MyConn.Close();
dpt.Dispose();
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
Close();
return ds;
}
/// <summary>
/// 执行存储过程返回结果集
/// </summary>
/// <param name="ProcName">存储过程名称</param>
/// <param name="Param">参数数组</param>
/// <returns>DatSet</returns>
public DataSet GetSet(string ProcName, SqlParameter[] Param)
{
SqlDataAdapter dpt;
DataSet ds = new DataSet();
try
{
Open();
SqlCommand sqlComm = new SqlCommand(ProcName, MyConn);
sqlComm.CommandType = CommandType.StoredProcedure;
sqlComm.Parameters.AddRange(Param);
dpt = new SqlDataAdapter(sqlComm);
dpt.Fill(ds);
MyConn.Close();
}
catch (SqlException ex)
{
Err.LogErr(ex.Message);
}
Close();
return ds;
}
/// <summary>
/// 执行无返回值的SQL语句
/// </summary>
/// <param name="SQl">SQL语句</param>
public int ExecSQL(String SQl)
{
int flag = -1;
SqlCommand Comm = new SqlCommand(SQl, MyConn);
try
{
Open();
flag = Comm.ExecuteNonQuery();
MyConn.Close();
}
catch (SqlException ex)
{
Err.LogErr(ex.Message+SQl);
}
Close();
return flag;
}
/// <summary>
/// 执行无返回值的存储过程
/// </summary>
/// <param name="ProcName">存储过程名称</param>
/// <param name="Param">参数数组</param>
public int ExecSQL(string ProcName, SqlParameter[] Param)
{
SqlCommand Comm = new SqlCommand(ProcName, MyConn);
int flag = -1;
try
{
Open();
Comm.CommandType = CommandType.StoredProcedure;
Comm.Parameters.AddRange(Param);
flag=Comm.ExecuteNonQuery();
Close();
}
catch (SqlException ex)
{
Err.LogErr(ex.Message);
}
Close();
return flag;
}
/// <summary>
/// 执行SQL返回DataReader
/// </summary>
/// <returns>datareader</returns>
/// <param name="SQL">执行SQL语句</param>
public SqlDataReader GetRead(String SQL)
{
SqlDataReader rd;
SqlCommand comm = new SqlCommand(SQL, MyConn);
Open();
rd = comm.ExecuteReader(CommandBehavior.CloseConnection);
return rd;
}
/// <summary>
/// 执行存储过程返回DataReader
/// </summary>
/// <param name="ProcName">存储过程名称</param>
/// <param name="Param">存储过程参数</param>
/// <returns></returns>
public SqlDataReader GetRead(string ProcName, SqlParameter[] Param)
{
SqlDataReader rd;
SqlCommand comm = new SqlCommand(ProcName, MyConn);
Open();
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.AddRange(Param);
rd = comm.ExecuteReader(CommandBehavior.CloseConnection);
return rd;
}
public void Close()
{
if (MyConn.State == ConnectionState.Open)
{
MyConn.Close();
}
}
private void Open()
{
if (MyConn.State == ConnectionState.Closed)
{
MyConn.Open();
}
}
}
}