C#.NET操作数据库通用类(MS SQL Server篇)

2009年4月25日星期六

C#.NET操作数据库通用类(MS SQL Server篇)

下面给出了一个C#操作MS SQL Se

下面给出了一个C#操作MS SQL Server
数据库的通用类,通过该类可以对数据库进行任何操作,包括执行SQL语句、执行存储过程。以下是其详细实现过程,希望大家共同修改优化之。稍后将介绍如何使用它实现N层的程序设计。


下面给出了一个C#操作MS SQL Se

 


执行存储过程。以下是其详细实现过程,希望配置web.config文件的链接参数


 


rver
数据库的通用类,通过该类可以对

<appSettings>数据库进行任何操作,包括执行SQL语句、

   
<!--

  connStr参数设置,事例说明:

  (1)Sql
server数据库,例如“server=local;database=test;uid=sa;pwd=;”大家共同修改优化之。稍后将介绍如何使用它

  (2)Access数据库,例如“data\ex.mdb;
user id='admin';Jet OLEDB:database password='admin';”

 -->

   
<add key="connStr"
value="server=127.0.0.1;database=DbName;uid=sa;pwd=;"
/>数据库进行任何操作,包括执行SQL语句、

 
</appSettings>


 


下面给出了一个C#操作MS SQL SeC#代码


下面给出了一个C#操作MS SQL Se

 


执行存储过程。以下是其详细实现过程,希望using System;

using System.Data;

using System.Data.SqlClient;


rver
数据库的通用类,通过该类可以对

namespace Com.LXJ.Database

{下面给出了一个C#操作MS SQL Se

 /// <summary>

 /// ConnDB 的摘要说明。

 ///
</summary>下面给出了一个C#操作MS SQL Se

 public class ConnDB

 {

  protected SqlConnection
Connection;rver
数据库的通用类,通过该类可以对


  private string
connectionString;


  ///
<summary>执行存储过程。以下是其详细实现过程,希望

  /// 默认构造函数

  ///
</summary>

  public ConnDB()执行存储过程。以下是其详细实现过程,希望

  {

   string
connStr;

   connStr =
System.Configuration.ConfigurationSettings.AppSettings["connStr"].ToString();


执行存储过程。以下是其详细实现过程,希望

   connectionString
= connStr;

   Connection =
new SqlConnection(connectionString);大家共同修改优化之。稍后将介绍如何使用它

  }




rver
数据库的通用类,通过该类可以对
  ///
<summary>

  /// 带参数的构造函数

  ///
</summary>下面给出了一个C#操作MS SQL Se

  /// <param
name="newConnectionString">数据库联接字符串</param>


  public ConnDB(string
newConnectionString)

  {执行存储过程。以下是其详细实现过程,希望

   connectionString
= newConnectionString;

   Connection =
new SqlConnection(connectionString);

  }


大家共同修改优化之。稍后将介绍如何使用它



  ///
<summary>下面给出了一个C#操作MS SQL Se

  /// 完成SqlCommand对象的实例化

  ///
</summary>

  /// <param
name="storedProcName"></param>rver
数据库的通用类,通过该类可以对



  /// <param
name="parameters"></param>


  ///
<returns></returns>


  private SqlCommand
BuildCommand(string storedProcName,IDataParameter[]
parameters)数据库进行任何操作,包括执行SQL语句、

  {

   SqlCommand
command = BuildQueryCommand(storedProcName,parameters);

   command.Parameters.Add(new
SqlParameter("ReturnValue",SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,string.Empty,DataRowVersion.Default,null));rver
数据库的通用类,通过该类可以对



   return
command;

  }


执行存储过程。以下是其详细实现过程,希望

  ///
<summary>

  /// 创建新的SQL命令对象(存储过程)执行存储过程。以下是其详细实现过程,希望

  ///
</summary>

  /// <param
name="storedProcName"></param>


  /// <param
name="parameters"></param>执行存储过程。以下是其详细实现过程,希望


  ///
<returns></returns>


  private SqlCommand
BuildQueryCommand(string storedProcName,IDataParameter[]
parameters)

  {执行存储过程。以下是其详细实现过程,希望

   SqlCommand
command = new SqlCommand(storedProcName,Connection);

   command.CommandType
= CommandType.StoredProcedure;

   foreach
(SqlParameter parameter in parameters)下面给出了一个C#操作MS SQL Se

   {

    command.Parameters.Add(parameter);


   }rver
数据库的通用类,通过该类可以对


   return
command;

  }


执行存储过程。以下是其详细实现过程,希望

  ///
<summary>

  /// 执行存储过程,无返回值执行存储过程。以下是其详细实现过程,希望

  ///
</summary>

  /// <param
name="storedProcName"></param>


  /// <param
name="parameters"></param>大家共同修改优化之。稍后将介绍如何使用它


  public void
ExecuteProcedure(string storedProcName,IDataParameter[]
parameters)

  {

   Connection.Open();rver
数据库的通用类,通过该类可以对



   SqlCommand
command;

   command=BuildQueryCommand(storedProcName,parameters);


   command.ExecuteNonQuery();大家共同修改优化之。稍后将介绍如何使用它


   Connection.Close();


  }


执行存储过程。以下是其详细实现过程,希望

  ///
<summary>

  /// 执行存储过程,返回执行操作影响的行数目rver
数据库的通用类,通过该类可以对


  ///
</summary>

  /// <param
name="storedProcName"></param>


  /// <param
name="parameters"></param>数据库进行任何操作,包括执行SQL语句、


  /// <param
name="rowsAffected"></param>


  ///
<returns></returns>


  public int RunProcedure(string
storedProcName,IDataParameter[] parameters,out int
rowsAffected)执行存储过程。以下是其详细实现过程,希望

  {

   int
result;

   Connection.Open();大家共同修改优化之。稍后将介绍如何使用它


   SqlCommand
command = BuildCommand(storedProcName,parameters);

   rowsAffected
= command.ExecuteNonQuery();

   result =
(int)command.Parameters["ReturnValue"].Value;大家共同修改优化之。稍后将介绍如何使用它

   Connection.Close();


   return
result;执行存储过程。以下是其详细实现过程,希望

  }

  


大家共同修改优化之。稍后将介绍如何使用它  ///
<summary>

  ///
重载RunProcedure把执行存储过程的结果放在SqlDataReader中

  ///
</summary>大家共同修改优化之。稍后将介绍如何使用它

  /// <param
name="storedProcName"></param>


  /// <param
name="parameters"></param>


  ///
<returns></returns>大家共同修改优化之。稍后将介绍如何使用它


  public SqlDataReader
RunProcedure(string storedProcName,IDataParameter[]
parameters)

  {

   SqlDataReader
returnReader;执行存储过程。以下是其详细实现过程,希望

   Connection.Open();


   SqlCommand
command = BuildQueryCommand(storedProcName,parameters);

   command.CommandType
= CommandType.StoredProcedure;大家共同修改优化之。稍后将介绍如何使用它

   returnReader
= command.ExecuteReader(CommandBehavior.CloseConnection);

   return
returnReader;

  }


数据库进行任何操作,包括执行SQL语句、



  ///
<summary>执行存储过程。以下是其详细实现过程,希望

  ///
重载RunProcedure把执行存储过程的结果存储在DataSet中和表tableName为可选参数

  ///
</summary>

  /// <param
name="storedProcName"></param>下面给出了一个C#操作MS SQL Se


  /// <param
name="parameters"></param>


  /// <param
name="tableName"></param>


  ///
<returns></returns>大家共同修改优化之。稍后将介绍如何使用它


  public DataSet
RunProcedure(string storedProcName,IDataParameter[]
parameters,params string[] tableName)

  {

   DataSet
dataSet = new DataSet();rver
数据库的通用类,通过该类可以对


   Connection.Open();


   SqlDataAdapter
sqlDA = new SqlDataAdapter();

   sqlDA.SelectCommand
= BuildQueryCommand(storedProcName,parameters);执行存储过程。以下是其详细实现过程,希望

   string
flag;

   flag =
"";

   for(int
i=0;i<tableName.Length;i++)rver
数据库的通用类,通过该类可以对


    flag
= tableName[i];

   if
(flag!="")

    sqlDA.Fill(dataSet,tableName[0]);下面给出了一个C#操作MS SQL Se


   else

    sqlDA.Fill(dataSet);


   Connection.Close();执行存储过程。以下是其详细实现过程,希望


   return
dataSet;

  }


执行存储过程。以下是其详细实现过程,希望  

  ///
<summary>

  /// 执行SQL语句,返回数据到DataSet中rver
数据库的通用类,通过该类可以对


  ///
</summary>

  /// <param
name="sql"></param>


  ///
<returns></returns>下面给出了一个C#操作MS SQL Se


  public DataSet
ReturnDataSet(string sql)

  {

   DataSet
dataSet=new DataSet();下面给出了一个C#操作MS SQL Se

   Connection.Open();


   SqlDataAdapter
sqlDA=new SqlDataAdapter(sql,Connection);

   sqlDA.Fill(dataSet,"objDataSet");下面给出了一个C#操作MS SQL Se


   Connection.Close();


   return
dataSet;

  }数据库进行任何操作,包括执行SQL语句、

  


  ///
<summary>rver
数据库的通用类,通过该类可以对


  /// 执行SQL语句,返回 DataReader

  ///
</summary>

  /// <param
name="sql"></param>下面给出了一个C#操作MS SQL Se


  ///
<returns></returns>


  public SqlDataReader
ReturnDataReader(String sql)

  {大家共同修改优化之。稍后将介绍如何使用它

   Connection.Open();


   SqlCommand
command = new SqlCommand(sql,Connection);

   SqlDataReader
dataReader = command.ExecuteReader();


下面给出了一个C#操作MS SQL Se

   return
dataReader;

  }


数据库进行任何操作,包括执行SQL语句、



  ///
<summary>数据库进行任何操作,包括执行SQL语句、

  /// 执行SQL语句,返回记录数

  ///
</summary>

  /// <param
name="sql"></param>rver
数据库的通用类,通过该类可以对



  ///
<returns></returns>


  public int
ReturnRecordCount(string sql)

  {下面给出了一个C#操作MS SQL Se

   int
recordCount = 0;


   Connection.Open();大家共同修改优化之。稍后将介绍如何使用它


   SqlCommand
command = new SqlCommand(sql,Connection);

   SqlDataReader
dataReader = command.ExecuteReader();


大家共同修改优化之。稍后将介绍如何使用它   while(dataReader.Read())


   {

    recordCount++;数据库进行任何操作,包括执行SQL语句、


   }

   dataReader.Close();


   Connection.Close();


下面给出了一个C#操作MS SQL Se

   return
recordCount;

  }


执行存储过程。以下是其详细实现过程,希望



  ///
<summary>数据库进行任何操作,包括执行SQL语句、

  /// 执行SQL语句

  ///
</summary>

  /// <param
name="sql"></param>执行存储过程。以下是其详细实现过程,希望


  ///
<returns></returns>


  public bool EditDatabase(string
sql)

  {数据库进行任何操作,包括执行SQL语句、

   bool
successState = false;


   Connection.Open();rver
数据库的通用类,通过该类可以对



   SqlTransaction
myTrans = Connection.BeginTransaction();

   SqlCommand
command = new SqlCommand(sql,Connection,myTrans);

   try执行存储过程。以下是其详细实现过程,希望

   {

    command.ExecuteNonQuery();


    myTrans.Commit();大家共同修改优化之。稍后将介绍如何使用它


    successState
= true;

   }

   catch大家共同修改优化之。稍后将介绍如何使用它

   {

    myTrans.Rollback();


   }数据库进行任何操作,包括执行SQL语句、

   finally

   {

    Connection.Close();rver
数据库的通用类,通过该类可以对



   }


   return
successState;rver
数据库的通用类,通过该类可以对


  }




执行存储过程。以下是其详细实现过程,希望  ///
<summary>

  /// 关闭数据库联接

  ///
</summary>大家共同修改优化之。稍后将介绍如何使用它

  public void Close()

  {

   Connection.Close();下面给出了一个C#操作MS SQL Se


  }


 }//end class执行存储过程。以下是其详细实现过程,希望

}//end namespace


 


 


0 评论:

发表评论