封装的ADO.NET对数据库操作经典类

转载 2006年06月09日 19:10:00

using System;
using System.Collections;
using System.Collections.Specialized;
using System.Runtime.Remoting.Messaging;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace LTP.SQLServerDAL
{
 /// <summary>
 /// ADO.NET数据库操作基础类。
 /// </summary>
 public abstract class DbManagerSQL
 {
  //数据库连接字符串
  protected static string connectionString = ConfigurationSettings.AppSettings["ConnectionString"]; 
  public DbManagerSQL()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }
  /// <summary>
  /// 执行SQL语句,返回影响的记录数
  /// </summary>
  /// <param name="SQLString"></param>
  /// <returns></returns>
  public static int ExecuteSql(string SQLString)
  {
   using (SqlConnection connection = new SqlConnection(connectionString))
   {    
    using (SqlCommand cmd = new SqlCommand(SQLString,connection))
    {
     try
     {  
      connection.Open();
      int rows=cmd.ExecuteNonQuery();
      return rows;
     }
     catch(System.Data.SqlClient.SqlException E)
     {    
      throw new Exception(E.Message);
     }
    }    
   }
  }
  /// <summary>
  /// 执行两条SQL语句,实现数据库事务。
  /// </summary>
  /// <param name="SQLString1"></param>
  /// <param name="SQLString2"></param>
  public static void ExecuteSqlTran(string SQLString1,string SQLString2)
  {
   using (SqlConnection connection = new SqlConnection(connectionString))
   {
    connection.Open();
    SqlCommand cmd = new SqlCommand();
    cmd.Connection=connection;    
    SqlTransaction tx=connection.BeginTransaction();   
    cmd.Transaction=tx;    
    try
    {     
     cmd.CommandText=SQLString1;
     cmd.ExecuteNonQuery();
     cmd.CommandText=SQLString2;
     cmd.ExecuteNonQuery();     
     tx.Commit();     
    }
    catch(System.Data.SqlClient.SqlException E)
    {  
     tx.Rollback();
     throw new Exception(E.Message);
    }
    finally
    {
     cmd.Dispose();
     connection.Close();
    } 
   }
  } 
  /// <summary>
  /// 执行多条SQL语句,实现数据库事务,每条语句以“;”分割。
  /// </summary>
  /// <param name="SQLStringList"></param>
  public static void ExecuteSqlTran(string SQLStringList)
  {
   using (OdbcConnection conn = new OdbcConnection(connectionString))
   {
    conn.Open();
    OdbcCommand cmd = new OdbcCommand();
    cmd.Connection=conn;    
    OdbcTransaction tx=conn.BeginTransaction();   
    cmd.Transaction=tx;    
    try
    {  
     string [] split= SQLStringList.Split(new Char [] { ';'});
     foreach (string strsql in split)
     {
      if (strsql.Trim()!="")
      {
       cmd.CommandText=strsql;
       cmd.ExecuteNonQuery();
      }
     }       
     tx.Commit();     
    }
    catch(System.Data.Odbc.OdbcException E)
    {  
     tx.Rollback();
     throw new Exception(E.Message);
    }
   }
  }
  /// <summary>
  /// 执行带一个存储过程参数的的SQL语句。
  /// </summary>
  /// <param name="SQLString"></param>
  /// <param name="content"></param>
  /// <returns></returns>
  public static int ExecuteSql(string SQLString,string content)
  {    
   using (SqlConnection connection = new SqlConnection(connectionString))
   {
    SqlCommand cmd = new SqlCommand(SQLString,connection);  
    System.Data.SqlClient.SqlParameter  myParameter = new System.Data.SqlClient.SqlParameter ( "@content", SqlDbType.NText);
    myParameter.Value = content ;
    cmd.Parameters.Add(myParameter);
    try
    {
     connection.Open();
     int rows=cmd.ExecuteNonQuery();
     return rows;
    }
    catch(System.Data.SqlClient.SqlException E)
    {    
     throw new Exception(E.Message);
    }
    finally
    {
     cmd.Dispose();
     connection.Close();
    } 
   }
  }  
  /// <summary>
  /// 向数据库里插入图像格式的字段
  /// </summary>
  /// <param name="strSQL"></param>
  /// <param name="fs"></param>
  /// <returns></returns>
  public static int ExecuteSqlInsertImg(string strSQL,byte[] fs)
  {  
   using (SqlConnection connection = new SqlConnection(connectionString))
   {
    SqlCommand cmd = new SqlCommand(strSQL,connection); 
    System.Data.SqlClient.SqlParameter  myParameter = new System.Data.SqlClient.SqlParameter ( "@fs", SqlDbType.Image);
    myParameter.Value = fs ;
    cmd.Parameters.Add(myParameter);
    try
    {
     connection.Open();
     int rows=cmd.ExecuteNonQuery();
     return rows;
    }
    catch(System.Data.SqlClient.SqlException E)
    {    
     throw new Exception(E.Message);
    }
    finally
    {
     cmd.Dispose();
     connection.Close();
    } 
    
   }
  }
  /// <summary>
  /// 执行一条计算查询结果语句,返回查询结果(整数)。
  /// </summary>
  /// <param name="strSQL"></param>
  /// <returns></returns>
  public static int GetCount(string strSQL)
  {
   using (SqlConnection connection = new SqlConnection(connectionString))
   {
    SqlCommand cmd = new SqlCommand(strSQL,connection);    
    try
    {
     connection.Open();
     SqlDataReader result = cmd.ExecuteReader();
     int i=0;
     while(result.Read())
     {
      i=result.GetInt32(0);
     }
     result.Close();    
     return i;
    }
    catch(System.Data.SqlClient.SqlException e)
    {        
     throw new Exception(e.Message);
    } 
    finally
    {
     cmd.Dispose();
     connection.Close();
    }
   }
  } 
  /// <summary>
  /// 执行一条计算查询结果语句,返回查询结果(object)。
  /// </summary>
  /// <param name="SQLString"></param>
  /// <returns></returns>
  public static object GetSingle(string SQLString)
  {
   using (SqlConnection connection = new SqlConnection(connectionString))
   {
    SqlCommand cmd = new SqlCommand(SQLString,connection);  
    try
    {
     connection.Open();
     object obj = cmd.ExecuteScalar();
     if((Object.Equals(obj,null))||(Object.Equals(obj,System.DBNull.Value)))
     {     
      return null;
     }
     else
     {
      return obj;
     }    
    }
    catch(System.Data.SqlClient.SqlException e)
    {    
     throw new Exception(e.Message);
    }
    finally
    {
     cmd.Dispose();
     connection.Close();
    }
   }
  }
  /// <summary>
  /// 执行查询语句,返回SqlDataReader
  /// </summary>
  /// <param name="strSQL"></param>
  /// <returns></returns>
  public static SqlDataReader ExecuteReader(string strSQL)
  {
   using (SqlConnection connection = new SqlConnection(connectionString))
   {
    SqlCommand cmd = new SqlCommand(strSQL,connection); 
    SqlDataReader myReader;   
    try
    {
     connection.Open(); 
     myReader = cmd.ExecuteReader();
     return myReader;
    }
    catch(System.Data.SqlClient.SqlException e)
    {        
     throw new Exception(e.Message);
    }  
    finally
    {
     cmd.Dispose();
     connection.Close();
    } 
   }
  }  
  /// <summary>
  /// 执行查询语句,返回DataSet
  /// </summary>
  /// <param name="SQLString"></param>
  /// <returns></returns>
  public static DataSet Query(string SQLString)
  {
   using (SqlConnection connection = new SqlConnection(connectionString))
   {
    DataSet ds = new DataSet();
    try
    {
     connection.Open();
     SqlDataAdapter command = new SqlDataAdapter(SQLString,connection);    
     command.Fill(ds,"ds");
    }
    catch(System.Data.SqlClient.SqlException ex)
    {    
     throw new Exception(ex.Message);
    }   
    return ds;
   }
   
  }


  #region 存储过程操作

  /// <summary>
  /// 运行存储过程
  /// </summary>
  /// <param name="storedProcName"></param>
  /// <param name="parameters"></param>
  /// <returns></returns>
  public static SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters )
  {
   using (SqlConnection connection = new SqlConnection(connectionString))
   {
    SqlDataReader returnReader;
    connection.Open();
    SqlCommand command = BuildQueryCommand( connection,storedProcName, parameters );
    command.CommandType = CommandType.StoredProcedure;

    returnReader = command.ExecuteReader();
    //Connection.Close();
    return returnReader;
   }
  }
  private static SqlCommand BuildQueryCommand(SqlConnection connection,string storedProcName, IDataParameter[] parameters)
  {
   
    SqlCommand command = new SqlCommand( storedProcName, connection );
    command.CommandType = CommandType.StoredProcedure;
    foreach (SqlParameter parameter in parameters)
    {
     command.Parameters.Add( parameter );
    }
    return command;
   
  }  
  public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName )
  {
   using (SqlConnection connection = new SqlConnection(connectionString))
   {
    DataSet dataSet = new DataSet();
    connection.Open();
    SqlDataAdapter sqlDA = new SqlDataAdapter();
    sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters );
    sqlDA.Fill( dataSet, tableName );
    connection.Close();

    return dataSet;
   }
  }

  #endregion 
 }
}

一个利用ADO.net操作数据库很好的操作封装

2、呼入用户信息 :在字段集包含的文本和其它元素外面绘制一个方框。:在fieldSet 对象绘制的方框内插入一个标题。3、去除全屏滚动条问题4、解决打开用javascript关掉showModalDi...
  • guoxubin2005
  • guoxubin2005
  • 2007年05月09日 14:32
  • 526

封装的ADO.NET对数据库操作经典类

using System;using System.Collections;using System.Collections.Specialized;using System.Runtime.Remo...
  • zyx_hawk
  • zyx_hawk
  • 2007年09月05日 19:49
  • 393

封装的ADO.NET对数据库操作经典类

using System;using System.Collections;using System.Collections.Specialized;using System.Runtime.Remo...
  • myvv_net
  • myvv_net
  • 2006年11月10日 17:02
  • 277

ADO.NET对数据库操作经典类

一.用SqlConnection连接SQL Server 1.加入命名空间 using System.Data.SqlClient; 2.连接数据库 SqlConnection myConne...
  • darkread
  • darkread
  • 2012年07月25日 11:07
  • 475

数据库经典:封装的ADO.NET对数据库操作经典类

 using System;using System.Collections;using System.Collections.Specialized;using System.Runtime.Rem...
  • yuxuan0476
  • yuxuan0476
  • 2009年05月15日 16:56
  • 157

ADO.NET 封装的数据库帮助类

C# ADO.NET封装的数据库帮助类
  • Dandelion_drq
  • Dandelion_drq
  • 2017年03月29日 23:34
  • 448

VB.NET调用ADO对数据库的操作

1.ACCESS数据库2.ORACLE数据库3.SQLSERVER数据库  
  • wei801004
  • wei801004
  • 2005年06月06日 19:11
  • 1003

封装的ADO.NET对数据库操作经典类 代码

using System;using System.Collections;using System.Collections.Specialized;using System.Runtime.Remo...
  • zz_mm
  • zz_mm
  • 2011年07月11日 10:52
  • 608

我封装的ADO.NET对数据库操作经典类

using System;using System.Collections;using System.Collections.Specialized;using System.Runtime.Remo...
  • CUG_fangxiang
  • CUG_fangxiang
  • 2011年06月12日 11:29
  • 393

封装的ADO.NET对数据库操作经典类 [更新]

using System;using System.Collections;using System.Collections.Specialized;using System.Runtime.Remo...
  • cyp403
  • cyp403
  • 2006年05月05日 15:33
  • 1585
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:封装的ADO.NET对数据库操作经典类
举报原因:
原因补充:

(最多只允许输入30个字)