数据库访问类(直接执行数据库操作)

[c-sharp]  view plain copy print ?
  1. using System;  
  2. using System.Data;  
  3. using System.Configuration;  
  4. using System.Web;  
  5. using System.Web.Security;  
  6. using System.Web.UI;  
  7. using System.Web.UI.WebControls;  
  8. using System.Web.UI.WebControls.WebParts;  
  9. using System.Web.UI.HtmlControls;  
  10.   
  11. //引入数据库的命名空间  
  12. using System.Data.SqlClient;  
  13.   
  14. /// <summary>  
  15. /// DB 数据的服务类  
  16. /// </summary>  
  17. public class DB  
  18. {  
  19.     SqlConnection con = null;//定义一个类属性,类型为SQL连接  
  20.     SqlCommand cmd = new SqlCommand();//针对 数据库操作的命令对象  
  21.       
  22.     //利用构造函数初始化 SQL连接  
  23.     public DB()  
  24.     {  
  25.         con = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=123;");  
  26.     }  
  27.   
  28.     public SqlConnection getCon()  
  29.     {  
  30.         if(con.State == ConnectionState.Closed)  
  31.             con.Open();//打开连接  
  32.         return con;  
  33.     }  
  34.     //关闭连接  
  35.     public void clear()  
  36.     {  
  37.         if (con.State == ConnectionState.Open)  
  38.             con.Close();  
  39.     }  
  40.     //根据传入的SQL语句,执行  
  41.     public int executeNonQuery(string strSql)  
  42.     {  
  43.         cmd.Connection = getCon();  
  44.         cmd.CommandText = strSql;  
  45.         int i = cmd.ExecuteNonQuery();  
  46.         clear();  
  47.         return i;  
  48.     }  
  49.   
  50.     //根据传入的SQL语句 执行 并返回结果  
  51.     public string executeGetReturn(string strSql)//strSql 是传入SQL命令语句  
  52.     {  
  53.         //得到数据的连接 并且这个连接是打开  
  54.        // getCon();  
  55.   
  56.         //建立一个 命令对象  
  57.         cmd.Connection = getCon(); //命令对象是需要基于 一个已经打开了的连接  
  58.         cmd.CommandText = strSql;   //指定数据库命令对象的 执行语句  
  59.   
  60.         string result = cmd.ExecuteScalar().ToString(); //执行命令语句,并将其以字符串的形式返回  
  61.         clear();  
  62.         return result;  
  63.     }  
  64.   
  65.     //得到一个数据集  
  66.     public DataSet getDs(string strSql,string tableName)  
  67.     {  
  68.         SqlDataAdapter sda = new SqlDataAdapter(strSql, getCon());  
  69.         DataSet ds = new DataSet();  
  70.         sda.Fill(ds, tableName);  
  71.         clear();  
  72.         return ds;  
  73.     }  
  74.   
  75.     //根据传入的SQL语句,执行并返回一个只向前的数据流DataReader  
  76.     public SqlDataReader getSdr(string strSql)  
  77.     {  
  78.         cmd.Connection = getCon();  
  79.         cmd.CommandText = strSql;  
  80.         SqlDataReader sdr = cmd.ExecuteReader();  
  81.         return sdr;  
  82.     }  
  83.       
  84.     //定义批量执行多条SQL语句的方法  
  85.     public bool executeTransaction(string[] strSql)   
  86.     {  
  87.         bool flag = false;  
  88.         con = getCon();//得到连接  
  89.         cmd.Connection = con;//命令对象  
  90.         SqlTransaction myTransaction; //声明一个SQL事物类型  
  91.         myTransaction = con.BeginTransaction();//基于一个连接初始化事物  
  92.         try  
  93.         {            
  94.             foreach (string sql in strSql)//遍历  
  95.             {  
  96.                 cmd.Transaction = myTransaction;//指定SQL命令语句 的事物  
  97.                 cmd.CommandText = sql;//给定命令语句  
  98.                 cmd.ExecuteNonQuery();//执行SQL语句  
  99.             }  
  100.             myTransaction.Commit();  
  101.             flag = true;  
  102.         }  
  103.         catch (Exception e)  
  104.         {  
  105.             myTransaction.Rollback();  
  106.             flag = false;  
  107.         }  
  108.         finally  
  109.         {  
  110.             clear();  
  111.         }       
  112.         return flag;  
  113.     }  
  114. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值