NET下面调用Access中存储过程的方法

转载 2004年10月20日 14:09:00
        在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那样对存储过程的支持好,所以要特别细心而且强烈建议大家经常保存。

C#二十六 使用Ado.Net调用存储过程

存储过程是连接式访问数据库的一种延伸,主要是通过命令对象调用数据库系统中的存储过程来完成的。存储过程可以带参数,也可以不带参数,可以返回结果页可以没有返回结果。存储过程执行速度快、允许模块化程序设计并...
  • zhangchen124
  • zhangchen124
  • 2016年05月07日 19:05
  • 2643

ADO.NET调用存储过程,过程比较全

     一: 执行不带返回参数(Input)的存储过程           1: 首先在数据库写个存储过程, 如创建个 addUser存储过程。                  Create Pr...
  • lee576
  • lee576
  • 2008年03月12日 22:02
  • 5581

C#中调用存储过程

1、没有参数没有返回值   2、有参数没有返回值  3、有参数有返回值     下面就这几种情况分别举例:1、没有参数没有返回值,象这种情况最简单。   存储过程   USE Nort...
  • ycl295644
  • ycl295644
  • 2015年05月05日 11:00
  • 5240

asp.net中最简单的调用存储过程实例

asp.net中最简单的调用存储过程实例   2011-04-01 17:36:17|  分类: asp.net学习 |  标签:学习   |举报|字号 订阅 asp.net中最简单的调用...
  • zhaohongx
  • zhaohongx
  • 2014年09月29日 09:36
  • 1126

.net 调用Oracle存储过程

在.NET中调用Oracle9i存储过程经验总结(1)  在.NET中调用Oracle9i存储过程可以用多个数据提供者,比如OralceClient,OleDb。本文将用OralceClient为例。...
  • u010678947
  • u010678947
  • 2014年03月07日 12:38
  • 1629

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

http://blog.csdn.net/yohomonkey/archive/2004/09/30/121555.aspx在Sql Server中使用存储过程是大家都比较熟悉的了,前不久自己作了一个...
  • xdev
  • xdev
  • 2004年09月30日 12:56
  • 6302

IBatisNet系列-执行存储过程

映射xml文件书写如下xml version="1.0" encoding="utf-8" ?>sqlMap namespace="Member" xmlns:xsi="http://www.w3.o...
  • gooddasenlin
  • gooddasenlin
  • 2007年09月26日 17:28
  • 662

调用包中存储过程注意的问题

今天看了一个程序包,大致结构如下 create or replace package body test_p is PROCEDURE test_sub IS BEGIN ...
  • qinyu100
  • qinyu100
  • 2014年02月28日 21:57
  • 1021

存储过程如何在Access里工作?

不像在Access里的其它的对象,存储过程没有用户界面,并且不能在Access的界面里创建。 要建立它们的方法只有编码。我将示范如何在ADO.NET中实现这些代码。 当一个存储过程被添加到Acce...
  • lin_lujian
  • lin_lujian
  • 2011年12月08日 09:01
  • 650

使用ADO.NET对象调用存储过程的输入和输出参数

使用ADO.NET对象 总体上,操作SQL Server的程序和操作Access的程序方法一致。只需要做3个地方的修改,就可以把操作Access数据库的程序改成操作SQL Server的程序。 (1)...
  • godpreserve
  • godpreserve
  • 2008年04月24日 15:04
  • 1035
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NET下面调用Access中存储过程的方法
举报原因:
原因补充:

(最多只允许输入30个字)