• 艾伟_转载:基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写 狼人:


    本系列文章导航

    基于.NET平台的Windows编程实战(一)——前言

    基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计

    基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写

    基于.NET平台的Windows编程实战(五)—— 问卷管理功能的实现

    基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现

    大家都知道本系统的正常运行少不了数据库操作这一块,且其在本系统中具有决定性作用,可以说没有它的操作系统将无法运行,故在本节课程中,专门把针对数据库的操作类拿出来讲讲,以便大家更加容易理解后面的课程。

    好,进入正题……

    首先,我们来新建一个类,方法如下:

    打开上一节课我们新建的QuestionnaireSystem项目,右击项目名,在出现的对话框中选择“添加”à“类”,在弹出的“添加新项”中选择“类”,并在下面的“名称”中输入DbOperate”,点“添加”,如下图4-1所示:

     

    OK,这样我们的DbOperate类文件就创建好了,但里面还是空白的,所以我们下面就一起来编写相应的方法吧。

    既然要对数据库进行操作,我们先要做的第一件事当然是要写个方法来打开数据库了。因为我们用的是Access2003数据库,所以我们得首先要using 进一个System.Data.OleDb 类库及一个System.Data 类库,方法:在新建的DbOperate文件的最上面,也就是写有几个using …… 地方,写入如下内容:

     

    using System.Data;

    using System.Data.OleDb;

     

    其次,我们需要定义如下二个数据库操作对象:

     

    protected OleDbConnection dbconn;//定义数据库连接对象

    protected OleDbCommand dbcomm = new OleDbCommand();//定义数据库操作对象 

     

    接下来,我们再写一个打开数据库连接的方法:

     

    /// <summary>
    /// 打开数据库
    /// </summary>
    /// <returns></returns>
    protected void CreateDbConn()
    {
    try
    {
    //捕获连接异常
    string dbpath = @"DataBase\Lj_QuestionnaireSys.mdb";//设置数据库路径,如连接有问
    题请在前面加上"..\..\",但在发布时要去掉前面的"..\..\"
    dbconn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=
    " + dbpath);//初始化数据库连接对象
    dbcomm.Connection = dbconn;//设置数据库操作对象使用此dbconn对象
    dbconn.Open();//打开数据库连接
    }
    catch (OleDbException) //如果出现数据库连接异常,则关闭数据库连接并弹出提示框
    {
    this.CloseDbConn();//关闭数据库连接
    MessageBox.Show("数据连接错误!可能是数据库被删除了11,请联系相关技术人员!", "操作提示"
    MessageBoxButtons.OK, MessageBoxIcon.Information);
    // Console.Write(dbex.Message);

    }
    catch (Exception) //如果出现其他异常,则关闭数据库连接并弹出提示框
    {
    this.CloseDbConn(); //关闭数据库连接
    MessageBox.Show("数据连接错误!可能是数据库被删除了,请联系相关技术人员!", "操作提示"
    MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    }

    数据库打开了,总不能让其长期开着吧!故我们还得写一关闭的方法:

     

            /// 关闭数据库
    ///
    protected void CloseDbConn()
    {
    if (dbconn.State == ConnectionState.Open) //如果数据库为打开状态,则关闭
    {
    dbconn.Close();
    //关闭数据库连接
    }
    dbconn.Dispose();
    //释放连接资源
    dbcomm.Dispose();//释放操作资源
    }

     

    好,至此,“开门”[打开数据库]与“关门”[关闭数据库]的方法都搞定了,下面就让我们设法在“开门”后“关门”前偷偷的躲进去做点实事吧,即写一些方法来读取或更新数据:

     

    Code

     

    OK!到此,整个类算是完工了,虽然不好[没进行性能方面的优化,也没引入存储过程的操作等等],但对于基本的操作已经够用的了,故在此不作这方面的讨论;
        在后期的其它系列课程中,我打算专门写一系列针对数据库操作优化类的课程,到那时我们再拿出来一起讨论^_^

    本课就先到此吧,谢谢……

    附,本课程源码下载

  • 相关阅读:
    antdvue 全局配置loading
    eslint使用
    chrome浏览器跨域请求cookie丢失问题(一直报验证码错误,因为未携带sessionid)
    [2021BUAA软工_助教博客]作业成绩汇总
    将list按指定大小分为n组
    关于sql中group by使用的一些注意点
    Java调用webservice请求
    windows系统查看用户sid
    高等软工期末作业《课程总结》
    成年人最大的智慧:认清自己
  • 原文地址:https://www.cnblogs.com/waw/p/2157192.html
Copyright © 2020-2023  润新知