天天看点

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

<a href="http://kb.cnblogs.com/page/47339">基于.NET平台的Windows编程实战(一)——前言</a>

<a href="http://kb.cnblogs.com/page/47340">基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计</a>

<a href="http://kb.cnblogs.com/page/47342">基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写</a>

<a href="http://kb.cnblogs.com/page/47403">基于.NET平台的Windows编程实战(五)—— 问卷管理功能的实现</a>

<a href="http://kb.cnblogs.com/page/47404">基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现</a>

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

好,进入正题……

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

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

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

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();//定义数据库操作对象 

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

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

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

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

Code

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

        /**//// 

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

        /// 执行SQL语句

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

        /// 

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

        /// 传入的SQL语句

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

        public void ExcuteSql(string sqlText)

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

{

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

            try

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

{//捕获异常

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

                CreateDbConn();//建立连接

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

                dbcomm.CommandType = CommandType.Text;//设置操作类型为文本类型

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

                dbcomm.CommandText = sqlText;//设置操作的SQL语句

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

                dbcomm.ExecuteNonQuery();//执行操作

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

            }

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

            catch (Exception) //如果出现异常,则提示错误

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

                MessageBox.Show("数据库操作错误!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

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

            finally

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

                CloseDbConn();//关闭连接

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

        }

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

        /// 判断是否执行成功,返回所影响的行数

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

        /// 影响的行数

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

        public int ExcuteIntSql(string sqlText)

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

                dbcomm.CommandType = CommandType.Text;//设置操作类型

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

                return dbcomm.ExecuteNonQuery();//执行操作,并返回影响的行数

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

            catch (Exception) 

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

                //MessageBox.Show("数据库操作错误!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

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

                return 0;//如果出现异常,则返回0

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

            } 

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

        /// 返回查询出的单条数字记录结果

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

        /// 查询出的数字结果

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

        public int ExcuteScrSql(string sqlText)

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

                return Convert.ToInt32(dbcomm.ExecuteScalar());//执行操作,并返回查询出的结果

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

        /// 返回查询出的单条文字记录结果

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

        /// 查询出的文字结果

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

        public string ExcuteStrScrSql(string sqlText)

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

                return dbcomm.ExecuteScalar().ToString();//执行操作,并返回查询出的结果

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

            catch (Exception)

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

                return "";//如果出现异常,则返回空字符串

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

        /// 返回查询出的数据表

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

        /// 查询出的数据表

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

        public DataTable GetDataTable(string sqlText)

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

            OleDbDataAdapter dbdapt = new OleDbDataAdapter();//实例化一个数据缓存适配器

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

            DataTable dt = new DataTable();//实例化一个数据表

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

                dbdapt.SelectCommand = dbcomm;//执行SQL语句,选择出数据

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

                dbdapt.Fill(dt);//填充数据表

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

            return dt;//返回查询出的数据表

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

        /// 按指定条数读出的Table数据表

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

        /// 传入的SQL

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

        /// 开始读数据的记录号

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

        /// 所要读出的最大条数

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

        /// 返回一数据表

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

        public DataTable GetPageDataTable(string sqlText,int pre,int maxcunt)

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

            DataSet ds = new DataSet();//实例化一个数据缓存器

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

                dbdapt.SelectCommand = dbcomm;//执行操作,选择出数据

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

                dbdapt.Fill(ds,pre,maxcunt,"db_Table");//按指定的条数填充数据表

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

            return ds.Tables["db_Table"];//返回数据表

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

//以下为合并统计的数据库操作 以下注释同上面的差不多,就不再写了

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

        OleDbConnection conn;

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

        OleDbCommand comm = new OleDbCommand();

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

        /// 连接数据库--合并统计用

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

        public void DbConn()

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

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

                string _dbpath = @"DataBase\1.mdb";

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

                conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _dbpath);

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

                comm.Connection = conn;

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

                conn.Open();

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

                //MessageBox.Show(_dbpath);

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

            catch (OleDbException)

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

                CloseConn();

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

                MessageBox.Show("数据库连接错误!请检查数据库!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

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

        /// 关闭数据库--合并统计用

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

        public void CloseConn()

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

            if (conn.State == ConnectionState.Open)

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

                conn.Close();

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

            conn.Dispose();

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

            comm.Dispose();

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

        /// 返回数据表--合并统计用

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

        public DataTable GetTable(string sqlText)

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

            OleDbDataAdapter odbad = new OleDbDataAdapter();

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

            DataTable dt = new DataTable();

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

                DbConn();

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

                comm.CommandType = CommandType.Text;

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

                comm.CommandText = sqlText;

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

                odbad.SelectCommand = comm;

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

                odbad.Fill(dt);

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

                MessageBox.Show("数据库连接错误!请选择正确的数据库!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

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

            return dt;

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

        /// 返回查询的结果(Int)--合并统计用

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

        /// Int

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

        public int ExcueteIntSql(string sqlText)

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

                return Convert.ToInt32(comm.ExecuteScalar());

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

                return 0;

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

OK!到此,整个类算是完工了,虽然不好[没进行性能方面的优化,也没引入存储过程的操作等等],但对于基本的操作已经够用的了,故在此不作这方面的讨论;

    在后期的其它系列课程中,我打算专门写一系列针对数据库操作优化类的课程,到那时我们再拿出来一起讨论^_^

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