發佈一個數據操作底層類

我對這個類不是很滿意,如果你有改進意見請聯繫我,不勝感激.

主要將對數據庫的操作簡單封裝了一下

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Configuration;
using System.Data.SqlClient;

namespace Addr.Admin.ExecuteSqlCommand
{
 ///
 /// ExecuteCommand 的摘要說明:數據處理層。
 ///
 public class ExecuteCommand
 {
  string cnStr;
  string errorMessage="";
  bool successful=true;
  //構造函數將連接字符串賦給變量
  public ExecuteCommand()
  {
   //
   // TODO: 在此處添加構造函數邏輯
   //
   cnStr=ConfigurationSettings.AppSettings["cn"];
  }
  //枚舉執行sqlcommand的類型
  public enum cmdType
  {
   ExecuteNonQuery=1,
   ExecuteScalar,
   ExecuteReader,
   ExecuteDataSet,
   ExecuteID
  };
  //返回是否執行成功的屬性
  public bool rlt
  {
   get
   {
    return successful;
   }
  }
  //返回錯誤信息
  public string msg
  {
   get
   {
    return errorMessage;
   }
  }
  //執行命令的函數
  public object Executing(SqlCommand cm,cmdType type)
  {
   SqlConnection cn;
   try
   {
    cn=new SqlConnection(cnStr);
    cn.Open();
    cm.Connection=cn;

    switch(type)
    {
     case cmdType.ExecuteNonQuery:
      try
      {
       cm.ExecuteNonQuery();
       cn.Close();
      }
      catch(Exception ex)
      {
       errorMessage="Error executing 'ExecuteNonQuery'."+ex.Message;
       successful=false;
      }
      break;
     case cmdType.ExecuteReader:
      try
      {
       SqlDataAdapter da=new SqlDataAdapter(cm.CommandText,cn);
       DataSet ds=new DataSet();
       da.Fill(ds,"First");
       da.Dispose();
       cn.Close();
       return ds.Tables["First"];
      }
      catch
      {
       errorMessage="Error executing 'ExecuteReader'.";
       successful=false;
      }
      break;
     case cmdType.ExecuteScalar:
      try
      {
       int result=(int)cm.ExecuteScalar();
       cn.Close();
       return result;
      }
      catch
      {
       errorMessage="Error executing 'ExecuteScalar'.'";
       successful=false;
      }
      break;
     case cmdType.ExecuteDataSet:
      try
      {
       SqlDataAdapter da=new SqlDataAdapter(cm.CommandText,cn);
       DataSet ds=new DataSet();
       da.Fill(ds);
       cn.Close();
       return ds;
      }
      catch
      {
       errorMessage="Error executing 'ExecuteDataSet'.";
       successful=false;
      }
      break;
     case cmdType.ExecuteID:
      try
      {
       string rst="";
       SqlDataReader dr=cm.ExecuteReader();
       if(dr.Read())
       {
        rst=dr["ID"].ToString();
       }
       dr.Close();
       cn.Close();
       return rst;
      }
      catch
      {
       errorMessage="Error executing 'ExecuteID'.";
       successful=false;
      }
      break;
     default:
      errorMessage="Error executing unknown sqlcommand.";
      successful=false;
      break;
    }
    return successful;
   }
   catch
   {
    successful=false;
    errorMessage="Error opening data connection.";
    return successful;
   }
  }
 }
}

發佈了30 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章