您的位置:首页 > 数据库

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

2007-06-01 14:11 609 查看

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


}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: