C#操作数据库的方式那种好一点【DBHelper相关】
//////////////////////////////////////////////////第一种using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using Microsoft.Practices.EnterpriseLibrary.Data.Sql;namespace DAL{ public class DBHelper { string strCon = Model.ConnectionModel.ConnectionString1; private SqlConnection connection; public SqlConnection Connection { get { string connectionString = strCon; if (connection == null) { connection = new SqlConnection(connectionString); connection.Open(); } else if (connection.State == System.Data.ConnectionState.Closed) { connection.Open(); } else if (connection.State == System.Data.ConnectionState.Broken) { connection.Close(); connection.Open(); } return connection; } } public int ExecuteCommand(string safeSql) { using (SqlCommand cmd = new SqlCommand(safeSql, Connection)) { int result = cmd.ExecuteNonQuery(); return result; } } public int ExecuteCommand(string sql, params SqlParameter[] values) { using (SqlCommand cmd = new SqlCommand(sql, Connection)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddRange(values); return cmd.ExecuteNonQuery(); } } public int ExecuteCommand2(string sql, params SqlParameter[] values) { using (SqlCommand cmd = new SqlCommand(sql, Connection)) { cmd.Parameters.AddRange(values); return cmd.ExecuteNonQuery(); } } public string GetScalar(string safeSql) { using (SqlCommand cmd = new SqlCommand(safeSql, Connection)) { string result = cmd.ExecuteScalar().ToString(); return result; } } public string GetScalar(string sql, params SqlParameter[] values) { using (SqlCommand cmd = new SqlCommand(sql, Connection)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddRange(values); string result = cmd.ExecuteScalar().ToString(); return result; } } public SqlDataReader GetReader(string safeSql) { using (SqlCommand cmd = new SqlCommand(safeSql, Connection)) { SqlDataReader reader = cmd.ExecuteReader(); return reader; } } public SqlDataReader GetReader(string sql, params SqlParameter[] values) { using (SqlCommand cmd = new SqlCommand(sql, Connection)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddRange(values); SqlDataReader reader = cmd.ExecuteReader(); return reader; } } public DataTable GetDataSet(string safeSql) { using (SqlCommand cmd = new SqlCommand(safeSql, Connection)) { DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(ds); return ds.Tables[0]; } } public DataTable GetDataSet(string sql, params SqlParameter[] values) { using (SqlCommand cmd = new SqlCommand(sql, Connection)) { DataSet ds = new DataSet(); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddRange(values); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(ds); return ds.Tables[0]; } } }}//调用的方法: public DataTable GetHours(string Dep, string BeginDate, string EndDate) { string strSql = "usp_GetHours"; SqlParameter[] sp = new SqlParameter[] { new SqlParameter("@Dep",Dep), new SqlParameter("@BeginDate",BeginDate), new SqlParameter("@EndDate",EndDate), }; return base.GetDataSet(strSql, sp); }
//////////////////////////////////////////////////第二种 public SqlDatabase GetDB(){ SqlDatabase db = new SqlDatabase(strCon); return db;}using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using System.Data.Common;using Microsoft.Practices.EnterpriseLibrary.Data.Sql;namespace DAL{ public class sys_UserGroupServices : DBHelper { /// <summary> /// 创建一个系统用户组。 /// </summary> /// <param name="GroupName">用户组名称</param> /// <param name="MenuGroupID">菜单组别ID,暂时设置为空</param> /// <param name="Remark">描述</param> /// <returns></returns> public bool CreateUserGroup(string GroupName, string MenuGroupID,string Remark) { SqlDatabase db = base.GetDB(); string strSql = "DBO.usp_sys_UserGroupADD "; db.AddInParameter(cmd, "GroupName", DbType.String, GroupName); db.AddInParameter(cmd, "MenuGroupID", DbType.String, MenuGroupID); db.AddInParameter(cmd, "Remark", DbType.String, Remark); return db.ExecuteNonQuery(cmd) > 0 ? true : false; } }}