我们现在写一个SQL SERVER的数据库简单的操作类。 包括事务,存储过程调用。 类文件如下: using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; using System.Data; namespace DALFactory { public class DBLib { private SqlConnection con = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["connstr"]); //private SqlConnection con = new SqlConnection("Server=SUNLEI;DataBase=WEB;UID=sa;PWD=123456"); //全局事务 private SqlTransaction Tx = null; public DBLib() { } //手动开始事务 public void BeginTransaction() { con.Open(); Tx = con.BeginTransaction(); } //手动提交事务 public void CommitTransaction() { Tx.Commit(); con.Close(); Tx = null; } //手动回滚事务 public void RollbackTransaction() { try { Tx.Rollback(); con.Close(); Tx = null; } catch { } } public void CloseConnetion(){ try { if(con.State!=ConnectionState.Closed) con.Close(); } catch { } } //给存储过程的参数赋值 public SqlCommand SetParams(SqlTypeBean[] bean, String ProcedureName) { if (bean == null) bean = new SqlTypeBean[] { }; SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.CommandText = ProcedureName; String para = ""; for (int i = 0; i < bean.Length; i++) { para = para + bean[i].GetName() + "=" + bean[i].GetValueString(); SqlParameter param = null; if (object.Equals(bean[i].GetClumType(), SqlDbType.VarChar)) { param = new SqlParameter(bean[i].GetName(), SqlDbType.VarChar, bean[i].GetClumLength()); if (bean[i].GetIsOutPut()) { param.Direction = ParameterDirection.Output; } param.Value = bean[i].GetValueString(); cmd.Parameters.Add(param); continue; } else if (object.Equals(bean[i].GetClumType(), SqlDbType.Int)) { param = new SqlParameter(bean[i].GetName(), SqlDbType.Int, bean[i].GetClumLength()); if (bean[i].GetIsOutPut()) { param.Direction = ParameterDirection.Output; } param.Value = bean[i].GetValueLong(); cmd.Parameters.Add(param); continue; } else if (object.Equals(bean[i].GetClumType(), SqlDbType.DateTime)) { param = new SqlParameter(bean[i].GetName(), SqlDbType.DateTime, bean[i].GetClumLength()); if (bean[i].GetIsOutPut()) { param.Direction = ParameterDirection.Output; } param.Value = DateTime.Parse(bean[i].GetValueString()); cmd.Parameters.Add(param); continue; } else if (object.Equals(bean[i].GetClumType(), SqlDbType.Char)) { param = new SqlParameter(bean[i].GetName(), SqlDbType.Char, bean[i].GetClumLength()); if (bean[i].GetIsOutPut()) { param.Direction = ParameterDirection.Output; } param.Value = char.Parse(bean[i].GetValueString()); cmd.Parameters.Add(param); continue; } else if (object.Equals(bean[i].GetClumType(), SqlDbType.Bit)) { param = new SqlParameter(bean[i].GetName(), SqlDbType.Bit, bean[i].GetClumLength()); if (bean[i].GetIsOutPut()) { param.Direction = ParameterDirection.Output; } param.Value = bean[i].GetValueString(); cmd.Parameters.Add(param); continue; } else if (object.Equals(bean[i].GetClumType(), SqlDbType.Decimal)) { param = new SqlParameter(bean[i].GetName(), SqlDbType.Decimal, bean[i].GetClumLength());