程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> dotNET下面調用Access中存儲過程的方法

dotNET下面調用Access中存儲過程的方法

編輯:C#入門知識

在Sql Server中使用存儲過程是大家都比較熟悉的了,前不久自己作了一個小東東,數據庫使用的是MS Access數據庫,也想著試試用存儲過程是否可行。畢竟,存儲過程與代碼的關系不是非常大,數據庫和存儲過程的修改有些是不用更改編碼的。下面貼出我的代碼,大家會發現,其實跟調用Sql Server的存儲過程是完全一樣的,不同的僅僅在於存儲過程的名稱。


以刪除人員信息為例:
1. 這裡是數據訪問層的一段代碼,直接調用存儲過程。



public class Person
{
///定義存儲過程,注意,這裡的存儲過程用 [ ] 括起來了。
private const string ASP_PERSON_INSERT = "[asp_Person_Insert]";
private const string ASP_PERSON_UPDATE = "[asp_Person_Update]";
private const string ASP_PERSON_DELETE = "[asp_Person_Delete]";
...................................
private const string PARM_PERSON_PERSONID="@PersonID";
..................................


private OleDbParameter[] GetDeleteParam(int PersonID)
{
OleDbParameter[] param = new OleDbParameter[]
{
new OleDbParameter(PARM_PERSON_PERSONID,OleDbType.Integer)
};
param[0].Value=PersonID;
return param;
}


/// <summary>
/// 刪除人員信息
/// </summary>
/// <param name="personID">人員ID</param>
/// <returns>成功返回True;失敗返回False</returns>
public bool Delete(int personID)
{
//ASP_PERSON_DELETE 存儲過程的名稱。


OleDbParameter[] param=this.GetDeleteParam(personID);
try
{
/// 調用方式沒有變化。
int i=Utility.Tools.CreateOleDbCommandExecuteNonQuery(ASP_PERSON_DELETE,param);
if (i>0)
{
return true;
}
}
catch
{
}
return false;
}



2.再來看看Access數據庫裡面跟Sql Server有什麼區別:



Access數據庫中的存儲過程是以“查詢”的方式存放的,打開你的Access數據庫,選中“查詢”,選中“新建”,先建立一個簡單的查詢。選擇表和需要的字段以及需要的參數。這時,再選中工具欄中的SQL視圖,您可以看到如下的語句:



PARAMETERS [PersonID] Short;
DELETE *
FROM PersonInfo
WHERE [PersonInfo].[PersonID]=[PersonID];



如果參數多,請參照:PARAMETERS [ID] Short, [ParentID] Short, [OrganName] Text ( 255 ), [Numbe] Text ( 255 ), [OtherName] Text ( 255 ), [CodeID] Text ( 255 ), [OrganSpec] Text ( 255 ), [OrganProperty] Text ( 255 ), [OutLayType] Text ( 255 ), [ManageDepart] Text ( 255 ), [SetUpTime] DateTime, [PassDepart] Text ( 255 ), [OrganNUM] Short, [PersonNUM] Short, [PassNumber] Text ( 255 ), [Address] Text ( 255 ), [JPerson] Text ( 255 ), [Tel] Text ( 255 ), YearCheck Text ( 255 );



最後,保存就可以運行你的代碼試試了。另外,Access裡面沒有Sql Server的查詢器,所以你要在Access中測試你的存儲過程會比較麻煩些:右鍵選中你的存儲過程,選擇“打開”即可,但是參數不要輸入錯誤。Access中寫存儲過程是閉架麻煩的,畢竟不象Sql Server那樣對存儲過程的支持好,所以要特別細心而且強烈建議大家經常保存。



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved