[引用]dotNET下面调用Access中存储过程的方法

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

http://blog.csdn.net/yohomonkey/archive/2004/09/30/121555.aspx

在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那样对存储过程的支持好,所以要特别细心而且强烈建议大家经常保存。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航