关于ACCESS的事务与存储过程的调用

    一直很钟情于使用ACCESS在项目开发期间做测试或做小型项目,方便快捷易布置,但很多兄弟认为ACCESS没有存储过程,其实它是有的。。。。只不过叫做查询设计,且不能执行多语句。下面来看一下具体的使用。

    一、Access里的存储过程:

    在Access里面,有一个东西,叫做查询设计。其实它就是存储过程。首先我们看一下创建方法:

     1.1 打开ACCESS,新建一个数据库(access 2000-2003格式兼可)与一张或多张表,随便弄一个咯。如图1.1所示。

图1.1 建立的ACCESS数据表

    二、建立存储过程

    在ACCESS2007里,点击“创建”-->“查询设计”,如图2.1所示:


图2.1 查询设计

    出现的选择表不用理会,直接关闭。然后切换视图到SQL视图,如图2.2所示:

图2.2 进入SQL视图

     下面的大家都知道了吧,进入正题,写过程,如图2.3所示。不过ACCESS不支持多语句,很遗憾。

图2.3 编写SQL

    当然,编写完后记得保存,这儿存为UP_Insert_Member。

    三、在代码中进行调用

    在这儿直接使用微软的企业库了,调用代码如下:

        Database db = DatabaseFactory.CreateDatabase();
        DbCommand cmd 
= db.GetStoredProcCommand("UP_Insert_Member");
        db.AddInParameter(cmd, 
"MopID", DbType.String, this.tbMopID.Text);
        db.AddInParameter(cmd, 
"IsJoinGroup", DbType.Boolean, this.chkIsJoinGroup.Checked);
        db.AddInParameter(cmd, 
"GroupNumber", DbType.Int32, this.ddlGroupNumber.SelectedValue);
        db.AddInParameter(cmd, 
"SendMoper", DbType.String, this.txtSendMoper.Text);
        
this.Label1.Text = string.Format("添加了{0}条数据", db.ExecuteNonQuery(cmd));

    四、使用事务

        Database db = DatabaseFactory.CreateDatabase();
        
using (DbConnection conn = db.CreateConnection())
        {
            DbTransaction tran 
= conn.BeginTransaction();
            DbCommand cmd 
= db.GetSqlStringCommand("delete from Member");
            
this.Label1.Text = string.Format("删除了{0}条数据", db.ExecuteNonQuery(cmd, tran));
            tran.Rollback();
            BindData();
        }

    相关代码上传:点击下载

原文地址:https://www.cnblogs.com/leehom0123/p/1373092.html