WPF应用Access数据库

现在Access数据库中有表GuestTable,其中的字段如下图所示,现在需要应用WPF技术为此表制作一个数据库管理窗口,实现对此数据库中的数据进行数据的增、删、改和查操作。

对数据的操作首先需要获取对数据库文件的连接,创建与数据库连接的程序如下所示,其中“..//..//DataBase//InkColorMatchingDB.mdb”可以替换为自己项目中Access数据库相对于Bin/Debug/**.exe可执行文件的相对路径。

        private OleDbConnection GetConnection()
{
string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..//..//DataBase//InkColorMatchingDB.mdb;";
OleDbConnection con = new OleDbConnection(strcon);
return con;
}

接下来应用所得到的对数据库的连接来执行SQL语句增加条目的操作,如下程序所示。

                 try
{
OleDbConnection con = GetConnection();//获得对数据库的连接
con.Open();//打开数据库连接
string judge = " SELECT COUNT(*) FROM GuestTable WHERE 公司名称='" + guestName_TB.Text.ToString() + "';";//检测是否已经存在所输入的公司名称
OleDbCommand judgecmd = new OleDbCommand(judge, con);//对数据库执行SQL语句操作,并且获得返回的结果
int rowNum = (int)judgecmd.ExecuteScalar();
if(rowNum==)
{
string insertstr = "INSERT INTO GuestTable(公司名称, 地址,省,市, 邮编,国家,电话号码,传真号,联系人,电子邮件) VALUES ('";
insertstr += guestName_TB.Text.ToString() + "', '";
insertstr += guestAddress_TB.Text.ToString() + "','";
insertstr += guestProvince_TB.Text.ToString() + "','";
insertstr += guestCity_TB.Text.ToString() + "','";
insertstr += guestPostCode_TB.Text.ToString() + "','";
insertstr += guestCountry_TB.Text.ToString() + "','";
insertstr += guestPhoneNum_TB.Text.ToString() + "','";
insertstr += guestFax_TB.Text.ToString() + "','";
insertstr += guestContactPerson_TB.Text.ToString() + "','";
insertstr += guestEmail_TB.Text.ToString() + "');";//整理插入数据的Sql语句
OleDbCommand insertcmd = new OleDbCommand(insertstr, con);
insertcmd.ExecuteNonQuery();
con.Close();
}
else
{
throw new Exception("所输入客户名称重复!");
}
}catch(Exception ex)
{ MessageBox.Show(ex.Message);
return;
}

删除数据的操作如下:

                 try
{
//连接数据库,获取数据显示在客户列表中
OleDbConnection mycon = GetConnection();
mycon.Open();
string sql = "delete * from GuestTable where 公司名称='" + name+"';";
OleDbCommand myCommand = new OleDbCommand(sql, mycon);
myCommand.ExecuteNonQuery();
mycon.Close();
}
catch (Exception ex)
{
throw (new Exception("删除数据出现错误:" + ex.Message));
}

更新数据的操作如下(其中如this.guestName_TB.Text.ToString()者均为从界面上所获得的用户输入的数值):

                 //用到了我前面写的那个得到数据库连接的函数
OleDbConnection conn = GetConnection(); //getConn():得到连接对象,
conn.Open();
//确定我们需要执行的SQL语句,本处是UPDATE语句!
sqlstr = "UPDATE GuestTable SET ";
sqlstr += "公司名称='" + this.guestName_TB.Text.ToString() + "',";
sqlstr += "地址='" + this.guestAddress_TB.Text.ToString() + "',";
sqlstr += "省='" + this.guestProvince_TB.Text.ToString() + "',";
sqlstr += "市='" + this.guestCity_TB.Text.ToString() + "',";
sqlstr += "邮编='" + this.guestPostCode_TB.Text.ToString() + "',";
sqlstr += "国家='" + this.guestCountry_TB.Text.ToString() + "',";
sqlstr += "电话号码='" + this.guestPhoneNum_TB.Text.ToString() + "',";
sqlstr += "传真号='" + this.guestFax_TB.Text.ToString() + "',";
sqlstr += "联系人='" + this.guestContactPerson_TB.Text.ToString() + "',";
sqlstr += "电子邮件='" + this.guestEmail_TB.Text.ToString() + "' ";
sqlstr += " where 公司名称='" + this.name+"';";
//定义command对象,并执行相应的SQL语句
OleDbCommand myCommand = new OleDbCommand(sqlstr, conn);
myCommand.ExecuteNonQuery(); //执行非查询语句
conn.Close();

如果需要查询数据库中的数据的话,则代码如下:

            //获取数据库中的数据
try
{
//连接数据库,获取数据显示在客户列表中
OleDbConnection mycon = GetConnection();
mycon.Open();
string sql = "select * from GuestTable;";
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand(sql, mycon);
adapter.Fill(guestData, "GuestTable");//其中guestData为DataSet类对象其中存储查询到的所有数据,“GuestTabel”为查询所针对的数据表
mycon.Close();
}
catch(Exception e)
{
throw (new Exception("读取数据库内的数据出错:" + e.Message));
}

WPF应用Access数据库的更多相关文章

  1. C#.NET ORM 如何访问 Access 数据库 [FreeSql]

    最近很多 .net QQ 群无故被封停,特别是 wpf 群几乎全军覆没.依乐祝的 .net6交流群,晓晨的 .net跨平台交流群,导致很多码友流离失所无家可归,借此机会使用一次召唤术,有需要的请加群: ...

  2. 【.net 深呼吸】连接Access数据库应注意的几点

    本地数据库可以有Y种选择,比如Sqlite.SQL Server Express.SQL Local DB.SQL Server CE.Access等,本文老周选用比较著名的Access本地数据库,在 ...

  3. PowerDesigner生成Access数据库

    1.打开PowerDesigner,设置PowerDesigner的当前数据库为Access: 2.在PowerDesigner中新建表结构(物理模型): 3.PowerDesigner菜单中:Dat ...

  4. C#连接Access数据库(详解)

    做一个用VS2012的C#连接Access数据库的备忘, SQL数据库固然强大,有大微软的强力技术支持,LINQ的方便操作,但是如果写一个小程序对数据库方面没有什么大的要求的话,将来在数据库方面就可以 ...

  5. 创建ACCESS数据库,并且创建表和数据。重点:关闭ACCESS数据库引用

    /// <summary> /// 创建ACCESS数据库,并且创建表和数据 /// </summary> /// <param name="dictTable ...

  6. 美萍超市销售管理系统标准版access数据库密码mp611

    美萍超市销售管理系统标准版access数据库密码mp611 作者:admin  来源:本站  发表时间:2015-10-14 19:01:43  点击:199 美萍超市销售管理系统标准版access后 ...

  7. NHibernate使用Access数据库的配置问题

    NHibernate本身不支持Access数据库,一开始看网上各种文档,捣敲浪费了N分钟. 还是祭起Nuget神器引用NHibernate.JetDrive. 代码如下,搞定收工... private ...

  8. System.Data.OleDb操作access数据库类,【bubuko.com】

    access数据库在应用了System.Data.OleDb后操作会很方便,这是一个常用的数据库操作类,其中两个方法,一个是返回datatable的,一个是执行sql语句返回影响记录的(一般是inse ...

  9. Access数据库的模糊查询到底是用*还是%

    今天被用了一下Access数据库,结果被它的模糊查询给折腾了一上午,到底是用*还是%?特此记下来 事情是这样的,我用C#写了个小的窗体程序,访问Access数据库进行一个模糊查询,我先手工往Acces ...

随机推荐

  1. 研究slatstack时踩过的坑,注意点及解决方案

    运行问题 1.直接物理性移除minion或者更换minion原先连接的master,会导致先前的master始终无法ping通minion [root@localhost salt]# salt '* ...

  2. concurrent.futures- 启动并行任务

    python因为其全局解释器锁GIL而无法通过线程实现真正的平行计算.这个论断我们不展开,但是有个概念我们要说明,IO密集型 vs. 计算密集型. IO密集型:读取文件,读取网络套接字频繁. 计算密集 ...

  3. python httplib和urllib的性能比较

    httplib代码: urlParseResult = urlparse(url) host = urlParseResult.hostname path = urlParseResult.path ...

  4. go语言标准库 时刻更新

    Packages   Standard library Other packages Sub-repositories Community Standard library ▾ Name Synops ...

  5. spring mvc 校验@NULL

    一需要的包 1 validation-api-1.0.0.GA.jar:JDK的接口: 2 hibernate-validator-4.2.0.Final.jar 是对上述接口的实现: 二 若在pom ...

  6. java多线程快速入门(一)

    1.什么是进程 比如:QQ.QQ游戏.eclipse都是进程,可以通过任务管理器查看进程 2.进程和线程区别 线程是进程的一部分,一个进程可以包含多个线程,一个线程只能属于一个进程 进程是所有线程的集 ...

  7. LeetCode(53):最大子序和

    Easy! 题目描述: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: ...

  8. 获取table行列

    var table =document.getElementById("add_purchaseOrderDetailList_table"); var rows = table. ...

  9. ASS字幕制作和压制教程

    首先放上一个成品预览,本教程只讲解基础的字幕制作,特效字幕请去TCAX论坛学习.   http://www.tudou.com/programs/view/rcv33Uwf3hM/   ======= ...

  10. ELK - MAC环境搭建

    ELK - MAC环境搭建 本文旨在记录elasticsearch.logstash.kibana在mac下的安装与启动. 写在前面 ELK的官方文档对与它们的使用方法已经讲的非常清楚了,这里只对相关 ...