*********************************数据访问层************************************************************
//导入连接字符串SqlConnection的命名空间
using System.Sql.SqlClient;
//导入命令对象SqlCommand的命名空间
using System.Data;
//导入配置文件的命名空间
using System.Configuration;
public class DBHelper{
//获取配置文件中的连接字符串
//winForm中C#获取数据库连接字符串的方式有两种
public string connstr=ConfigurationManger.ConnectionStrings["db"].ConnectionStrings;
//或connstr="server=localhost,uid=sa;pwd=123456;database=dataName"; 注:字符串可复制过来
//webForm/Asp.Net中C#获取数据库连接字符串的方式
//在web.config中的<configuration>下面一行加入数据库连接字符串
//<appsetions>
// <add key="sqlconn" value="data source=.;initial catalog=dataName;user id=sa;password=123456"/>
//</appsetions>
public string connstr=configurationsettings.appsettings["sqlconn"];
private SqlConnection conn;
public SqlConnection Conn{
get{
if(conn==null)
conn=new SqlConnection(connstr);
if(conn.State!=ConnectionState.Open)
conn.Open();
}
}
///<summary>
///关闭连接池
///</summary>
public void CloseConn(){
if(Conn.State==Connection.Open)
Conn.Close();
}
///<summary>
///适用于增、删、改的方法
///</summary>
///<param name="sql">要执行的语句</param>
///<param name="type">命令类型</param>
///<param name="paras">参数集合</param>
///<returns>true:成功;false:失败</returns>
public bool ExecuteNonQuery(string sql,CommandType type,params SqlParameter[] paras){
int rows=0;
try{
//创建命令对象
SqlCommand cmd=new SqlCommand(sql,Conn);
//设置命令类型
cmd.CommandType=type;
if(paras!=null&¶s.Length>0){
//将参数集合插入到命令对象的参数集合中去
cmd.Parameters.AddRange(paras);
}
rows=cmd.ExecuteNonQuery();
}catch(Exception ex){
throw(ex);
}finally{
CloseConn();
}
}
///<summary>
///适用于事务操作
///</summary>
///<param name="sql">要执行的sql语句</param>
///<param name="tranconn">要使用的连接池</param>
///<param name="type">命令类型</param>
///<param name="tran">事务对象</param>
///<param name="paras">参数集合</param>
///<returns>true:成功;false:失败</returns>
public bool ExecuteNonQuery(string sql,SqlConnection tranconn,CommandType type,SqlTransaction tran,params SqlParameter[] paras){
int rows=0;
try{
SqlCommand cmd=new SqlCommand(sql,tranconn);
//设置命令类型
cmd.CommandType=type;
if(paras!=null¶s.Length>0){
//将参数集合添加到命令对象的参数集合中去
cmd.Parameters.Addrange(paras);
}
rows=cmd.ExecuteNonQuery();
}catch(Exception ex){
throw ex;
}finally{
CloseConn();
}
return rows>0?true:false;
}
///<summary>
///适用于返回单行单列的查询语句
///</summary>
///<param name="sql">要执行的语句</param>
///<param name="type">命令类型</param>
///<param name="paras">参数集合</param>
///<returns>返回的结果</returns>
public string ExecuteScalar(string sql,CommandType type,params SqlParamseter[] paras){
object obj=null;
try{
SqlCommand cmd=new SqlCommand(sql,Conn);
cmd.CommandType=type;
if(paras!=null&¶s.Length>0){
//将参数集合添加到命令对象的参数集合中去
cmd.Parameters.AddRange(paras);
}
obj=cmd.ExecuteScalar();
}catch(Exception ex){
throw ex;
}finally{
CloseConn();
}
if(obj!=null){
return obj.ToString();
}
return "";
}
///<summary>
///适用于少量数据的查询语句(当获取完数据后,立即关闭datareader和conn)
///</summary>
///<param name="sql">要执行的语句</param>
///<param name="type">命令类型</param>
///<param name="paras">参数集合</param>
///<returns></returns>
public SqlDataReader ExecuteDataReader(string sql,CommandType type,params SqlParameter[] paras){
SqlDataReader read=null;
try{
SqlCommand cmd=new SqlCommand(sql,Conn);
cmd.CommandType=type;
if(paras!=null&¶s.Length>0){
//将参数集合添加到命令对象参数集合中去
cmd.Parameters.AddRange(paras);
}
read=cmd.ExecuteReader();
}catch(Exception ex){
throw ex;
}
return read;
}
///<summary>
///返回dataset
///</summary>
///<param name="sql">要执行的语句</param>
///<param name="type">命令类型</param>
///<param name="paras">参数集合</param>
///<returns></returns>
public DataSet ExecuteDataSet(string sql,CommandType type,params SqlParameter[] paras){
DataSet ds=new DataSet();
try{
SqlCommand cmd=new SqlCommand(sql,Conn);
cmd.CommandType=type;
if(paras!=null¶s.Length>0){
cmd.Parameters.AddRange(paras);
}
SqlDataAdapter da=new SqlDataAdapter(cmd);
da.Fill(ds);
}catch(Exception ex){
throw ex;
}
return ds;
}
************************************表现层*********************************************************
调用示例:
DataSet ds=new DataSet();
string sql="select * from table";
ds=getdataBLL.getDataset(sql);
datagrid1.datasource=ds.tables[0].defaultView;