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

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;
   }
   
  }


  
存储过程操作
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值