国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
C#執(zhí)行存儲(chǔ)過程

using System;
using System.Data;
using System.Data.SqlClient;

這是命名空間,不用多講解了吧。

 public class DAL       //定義一個(gè)類
 {
  string cnstr="data source=.;initial catalog=company;persist security info=False;user id=sa;pwd=sa;";

//定義連接數(shù)據(jù)庫的連接字符串
  private SqlCommand cm=new SqlCommand(); //建立Command對(duì)象

//定義一個(gè)全局的Command 對(duì)象。


  public SqlCommand getCommand    //返回Command對(duì)象
  {
   get {return cm;}
  }

  public DAL() //構(gòu)造函數(shù)
  {
   cm.Connection=new SqlConnection(cnstr);
  }

下面是添加存儲(chǔ)過程參數(shù)的部分

//---------------------------------------------------------
  //添加參數(shù)
  //---------------------------------------------------------
 

 如果要執(zhí)行新的存儲(chǔ)過程,需要先清除以前添加的存儲(chǔ)過程的參數(shù)


  //清除參數(shù)
  public void ClearParameter()
  {cm.Parameters.Clear();}

這是一個(gè)通用的添加參數(shù)的函數(shù)。


  //全部的參數(shù)
  public void addNewParameter(string ParameterName,string ParameterValue,SqlDbType sqlType,int size,string Direction)
  { 
   cm.Parameters.Add(ParameterName,sqlType,size);   //添加存儲(chǔ)過程的參數(shù)
   cm.Parameters[ParameterName].Value=ParameterValue;  //負(fù)值
   cm.Parameters[ParameterName].Direction=getDirection(Direction);//設(shè)置方向
  }

  //方向?yàn)檩斎氲?br>  public void addNewParameter(string ParameterName,string ParameterValue,SqlDbType sqlType,int size)
  { 
   cm.Parameters.Add(ParameterName,sqlType,size);   //添加存儲(chǔ)過程的參數(shù)
   cm.Parameters[ParameterName].Value=ParameterValue;  //負(fù)值
   //cm.Parameters[ParameterName].Direction=getDirection(Direction);//設(shè)置方向
  
  }

下面是把常用的幾個(gè)數(shù)據(jù)類型提出來,方便操作。

這是專門添加 int 數(shù)據(jù)類型的參數(shù)


  //添加int型的參數(shù)
  public void addNewParameter(string ParameterName,int ParameterValue)
  { 
   cm.Parameters.Add(ParameterName,SqlDbType.Int,4);   //添加存儲(chǔ)過程的參數(shù)
   cm.Parameters[ParameterName].Value=ParameterValue;   //負(fù)值
   //設(shè)置方向取默認(rèn)值——輸入
  }

這是專門添加 nvarChar 數(shù)據(jù)類型的參數(shù)

  //添加nvarChar型的參數(shù)
  public void addNewParameter(string ParameterName,string ParameterValue,int size)
  { 
   cm.Parameters.Add(ParameterName,SqlDbType.NVarChar,size);   //添加存儲(chǔ)過程的參數(shù)
   cm.Parameters[ParameterName].Value=ParameterValue;   //負(fù)值
   //設(shè)置方向取默認(rèn)值——輸入的
  
  }

這是專門添加 Bit 數(shù)據(jù)類型的參數(shù)

  //添加bit型的參數(shù)
  public void addNewParameter(string ParameterName,bool ParameterValue)
  { 
   cm.Parameters.Add(ParameterName,SqlDbType.Bit);   //添加存儲(chǔ)過程的參數(shù)
   cm.Parameters[ParameterName].Value=ParameterValue;   //負(fù)值
   //設(shè)置方向取默認(rèn)值——輸入的
  
  }

如果你還有其他的數(shù)據(jù)類型也是經(jīng)常使用的,可以再加相應(yīng)的函數(shù)。

參數(shù)加完了,下面就可以運(yùn)行存儲(chǔ)過程了


  //-------------------------------------------------------------
  //    運(yùn)行、返回記錄集
  //-------------------------------------------------------------

通過傳入的存儲(chǔ)過程的名稱來執(zhí)行存儲(chǔ)過程,把返回的記錄集放到DataSet里面,如果是多個(gè)記錄集的話,分別放在Table[0]、Table[1]、Table[2]……


  //運(yùn)行存儲(chǔ)過程返回DataSet
  public DataSet runSPDataSet(string StoredProcedureName)
  {
   //cm.Connection=new SqlConnection(cnstr);
   cm.CommandText=StoredProcedureName;
   cm.CommandType=CommandType.StoredProcedure;
   try
   {
    SqlDataAdapter da=new SqlDataAdapter(cm);
    DataSet DS=new DataSet();
    da.Fill(DS);
    return DS;
   }
   catch(Exception ex)
   {
    throw ex;
   }
   finally
   {
    cm.Connection.Close();
   }
  }

通過傳入的存儲(chǔ)過程的名稱來執(zhí)行存儲(chǔ)過程,把返回的第一個(gè)記錄集里的第一條記錄放在Object 數(shù)組里。多用在顯示詳細(xì)信息里,因?yàn)檫@種情況大多都是只用一條記錄的。如果是空的話返回 strValue[0]="null" 。

//運(yùn)行存儲(chǔ)過程返回第一條記錄的數(shù)組
  public Object[] runSPItems(string StoredProcedureName)
  { 
   Object[] strValue=new Object[1];
   cm.CommandText=StoredProcedureName;
   cm.CommandType=CommandType.StoredProcedure;
   try
   {
    cm.Connection.Open();
    SqlDataReader r =  cm.ExecuteReader(CommandBehavior.CloseConnection);
    if (r.Read())
    {
     strValue=new Object[r.FieldCount];
     r.GetValues(strValue);
    }
    else
    {
     strValue[0]="null";
    }r.Close();
   }
   catch(Exception ex)
   {
    throw ex;
   }
   finally
   {
    cm.Connection.Close();
   }
   return strValue;
  }

如果你想用 DataReader 的話,可以用這個(gè)函數(shù)返回Command對(duì)象,然后用Command.ExecuteReader,最后再用Command.Connection.Close(),關(guān)閉連接。應(yīng)該還有更好的方法吧,總之我是很少用DataReader 的。

//加入存儲(chǔ)過程需要的參數(shù),返回command
  public SqlCommand getSPCommand(string StoredProcedureName)
  { 
   //cm.Connection=new SqlConnection(cnstr);
   cm.CommandText=StoredProcedureName;
   cm.CommandType=CommandType.StoredProcedure;
   return cm;
  }

如果只是添加記錄不需要返回記錄集的話,可以用下面的函數(shù)。

//運(yùn)行存儲(chǔ)過程 不返回記錄集,用于添加記錄,或者是通過存儲(chǔ)過程的參數(shù)返回?cái)?shù)據(jù)。
  public string runSP(string ParameterName)
  { 
   //cm.Connection=new SqlConnection(cnstr);
   cm.CommandType=CommandType.StoredProcedure;
   cm.CommandText=ParameterName;
   try
   {
    cm.Connection.Open();
    cm.ExecuteNonQuery();
    cm.Connection.Close();
    return "true";
   }
   catch(Exception ex)
   {
    throw ex;
   }
   finally
   {
    cm.Connection.Close();
   }

  }

存儲(chǔ)過程也執(zhí)行完畢了,那如果有output類型的參數(shù),要取回參數(shù)值怎么辦呢,那就寫個(gè)函數(shù)來實(shí)現(xiàn)吧。

  //按序號(hào)返回參數(shù)值,一般在執(zhí)行完存儲(chǔ)過程后使用
  public string getParameter(int ParameterIndex)
  { 
   return cm.Parameters[ParameterIndex].Value.ToString();
  }

  //按名稱返回參數(shù)值
  public string getParameter(string ParameterName)
  { 
   return cm.Parameters[ParameterName].Value.ToString();
  }

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
[.NET]ADO.NET調(diào)用存儲(chǔ)過程
C#中調(diào)用存儲(chǔ)過程,通過DataGridView顯示
VB.net數(shù)據(jù)庫編程(06):調(diào)用存儲(chǔ)過程(帶參和不參數(shù)情況)
操作數(shù)據(jù)庫的類DbHelper.cs
Attribute在.NET編程中的應(yīng)用(四)
存儲(chǔ)過程
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服