夏天的专栏

共享生活中的点点滴滴,希望每个程序员都能享受属于自己的生活

一个数据库操作类

拿它做了两个项目了,感觉还是很实用,拿出来大家一起学习,都是做项目的时候想到了就写上,肯定有很多地方需要改进,大家多指教。

 

using System;

using System.Data.SqlClient;

using System.Data;

using System.Configuration;

namespace web.base_class

{

     /// <summary>

     /// db_class 的摘要说明。注意用到executereader后一定要调用析构函数

     /// </summary>

     public class db_class

     {

          private SqlConnection conn=new SqlConnection();

         /// <summary>

         /// 私有成员

         /// </summary>

          private string _sql;

         /// <summary>

         /// 属性:数据库查询语句

         /// </summary>

          private string _er;

         public string er

         {

              get{return _er;}

             

         }

         public string sql

         {

              get{return _sql;}

              set{_sql=value;}

         }

         /// <summary>

         /// 构造函数

         /// </summary>

         public db_class()

         {

              //

              // TODO: 在此处添加构造函数逻辑

              //

              conn.ConnectionString=System.Configuration.ConfigurationSettings.AppSettings["constr"].ToString();

         }

         ~ db_class()//析构函数

         {

              if (conn.State==ConnectionState.Open)

              conn.Close();

         }

 

         /// <summary>

         /// 打开数据库连接

         /// </summary>

         public void db_open()

         {

              if (conn.State==ConnectionState.Closed)

              {

                   conn.ConnectionString=System.Configuration.ConfigurationSettings.AppSettings["constr"].ToString();

                   conn.Open();

              }

         }

         /// <summary>

         /// 关闭数据库连接

         /// </summary>

         public void db_close()

         {

              if (conn.State==ConnectionState.Open){

                   conn.Close();

                   conn.Dispose();

              }

         }

 

         /// <summary>

         /// 执行非返回型查询语句

         /// </summary>

         /// <returns></returns>

         public bool executesql()

         {

              SqlCommand cmd=new SqlCommand(_sql,conn);

              this.db_open();

              try

              {

                   cmd.ExecuteNonQuery();

                   this.db_close();

                   return true;

              }

              catch

              {

                   this.db_close();

                   return false;

              }

         }

         /// <summary>

         /// 执行返回datareader的数据库查询

         /// </summary>

         /// <returns></returns>

         public SqlDataReader executereader()

         {

              SqlCommand cmd=new SqlCommand(_sql,conn);

              this.db_open();

              SqlDataReader dr;

              try

              {

                   dr=cmd.ExecuteReader(CommandBehavior.CloseConnection);//参数表示关闭datagrid对象就会关闭connection对象

                   if (dr.HasRows==true)

                   {

                       return dr;

                   }

                   else

                   {

                       _er="数据为空";

                       return null;

                   }

              }

              catch

              {

                   _er="语句错误";

                   return null;

              }

         }

 

/// <summary>

///

/// </summary>

/// <returns></returns>

         public DataView executedv()

         {

              System.Data.SqlClient.SqlDataAdapter da=new SqlDataAdapter(_sql,conn);

              DataSet ds=new DataSet();

              this.db_open();

              try

              {

                   da.Fill(ds,"tb");

                   DataView dv=new DataView(ds.Tables["tb"]);

                   if (dv.Count>0)

                   {

                        this.db_close();

                       return dv;

                   }

                   else

                   {

                        this.db_close();

                       _er="数据出错";

                       return null;

                   }

              }

              catch

              {

                   _er="数据出错";

                   return null;

              }

              finally

              {

                   this.db_close();

              }

         }

         public string sql2str(string def)

         {

              string rr="";

              SqlCommand cmd=new SqlCommand(_sql,conn);

              this.db_open();

              SqlDataReader dr;

              try

              {

                   dr=cmd.ExecuteReader(CommandBehavior.CloseConnection);

                   if(dr.HasRows)

                   {

                        dr.Read();

                        rr=dr[0].ToString();

                        dr.Close();

                        this.db_close();

                   }

              }

              catch

              {

                   rr="";

              }

              if(rr=="")

                   rr=def;

              return rr;

         }

 

         /// <summary>

         /// 执行返回BOOL的存储过程

         /// </summary>

         /// <returns></returns>

         public bool exepro()

         {

              this.db_open();

              SqlCommand cmd=new SqlCommand(_sql,conn);

              cmd.CommandType=CommandType.StoredProcedure;

              try

              {

                   cmd.ExecuteNonQuery();

                   this.db_close();

                   return true;

              }

              catch

              {

                   this.db_close();

                   return false;

              }

 

         }

     }

}

文章出自

阅读更多
个人分类: 数据库
上一篇将SQL SERVER中所有表的列信息显示出来〔总结〕
下一篇“指定的Web服务器运行的不是ASP.NET1.1版”解决办法(总结)
想对作者说点什么? 我来说一句

asp.net数据库操作

2009年08月18日 2.9MB 下载

C#.net数据库操作

2009年09月08日 33KB 下载

SQL数据库操作类(C#)

2010年05月25日 1KB 下载

没有更多推荐了,返回首页

关闭
关闭