• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
激情 希望 斗志昂扬
Records of growth process 专注微软技术
博客园    首页    新随笔    联系   管理    订阅  订阅

【转】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;
   }
   
  }


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


posted @ 2009-03-28 23:50  贤  阅读(765)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3