using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; //引入数据库的命名空间 using System.Data.SqlClient; /// <summary> /// DB 数据的服务类 /// </summary> public class DB { SqlConnection con = null;//定义一个类属性,类型为SQL连接 SqlCommand cmd = new SqlCommand();//针对 数据库操作的命令对象 //利用构造函数初始化 SQL连接 public DB() { con = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=123;"); } public SqlConnection getCon() { if(con.State == ConnectionState.Closed) con.Open();//打开连接 return con; } //关闭连接 public void clear() { if (con.State == ConnectionState.Open) con.Close(); } //根据传入的SQL语句,执行 public int executeNonQuery(string strSql) { cmd.Connection = getCon(); cmd.CommandText = strSql; int i = cmd.ExecuteNonQuery(); clear(); return i; } //根据传入的SQL语句 执行 并返回结果 public string executeGetReturn(string strSql)//strSql 是传入SQL命令语句 { //得到数据的连接 并且这个连接是打开 // getCon(); //建立一个 命令对象 cmd.Connection = getCon(); //命令对象是需要基于 一个已经打开了的连接 cmd.CommandText = strSql; //指定数据库命令对象的 执行语句 string result = cmd.ExecuteScalar().ToString(); //执行命令语句,并将其以字符串的形式返回 clear(); return result; } //得到一个数据集 public DataSet getDs(string strSql,string tableName) { SqlDataAdapter sda = new SqlDataAdapter(strSql, getCon()); DataSet ds = new DataSet(); sda.Fill(ds, tableName); clear(); return ds; } //根据传入的SQL语句,执行并返回一个只向前的数据流DataReader public SqlDataReader getSdr(string strSql) { cmd.Connection = getCon(); cmd.CommandText = strSql; SqlDataReader sdr = cmd.ExecuteReader(); return sdr; } //定义批量执行多条SQL语句的方法 public bool executeTransaction(string[] strSql) { bool flag = false; con = getCon();//得到连接 cmd.Connection = con;//命令对象 SqlTransaction myTransaction; //声明一个SQL事物类型 myTransaction = con.BeginTransaction();//基于一个连接初始化事物 try { foreach (string sql in strSql)//遍历 { cmd.Transaction = myTransaction;//指定SQL命令语句 的事物 cmd.CommandText = sql;//给定命令语句 cmd.ExecuteNonQuery();//执行SQL语句 } myTransaction.Commit(); flag = true; } catch (Exception e) { myTransaction.Rollback(); flag = false; } finally { clear(); } return flag; } }