WPF应用Access数据库
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数据库的更多相关文章
- C#.NET ORM 如何访问 Access 数据库 [FreeSql]
最近很多 .net QQ 群无故被封停,特别是 wpf 群几乎全军覆没.依乐祝的 .net6交流群,晓晨的 .net跨平台交流群,导致很多码友流离失所无家可归,借此机会使用一次召唤术,有需要的请加群: ...
- 【.net 深呼吸】连接Access数据库应注意的几点
本地数据库可以有Y种选择,比如Sqlite.SQL Server Express.SQL Local DB.SQL Server CE.Access等,本文老周选用比较著名的Access本地数据库,在 ...
- PowerDesigner生成Access数据库
1.打开PowerDesigner,设置PowerDesigner的当前数据库为Access: 2.在PowerDesigner中新建表结构(物理模型): 3.PowerDesigner菜单中:Dat ...
- C#连接Access数据库(详解)
做一个用VS2012的C#连接Access数据库的备忘, SQL数据库固然强大,有大微软的强力技术支持,LINQ的方便操作,但是如果写一个小程序对数据库方面没有什么大的要求的话,将来在数据库方面就可以 ...
- 创建ACCESS数据库,并且创建表和数据。重点:关闭ACCESS数据库引用
/// <summary> /// 创建ACCESS数据库,并且创建表和数据 /// </summary> /// <param name="dictTable ...
- 美萍超市销售管理系统标准版access数据库密码mp611
美萍超市销售管理系统标准版access数据库密码mp611 作者:admin 来源:本站 发表时间:2015-10-14 19:01:43 点击:199 美萍超市销售管理系统标准版access后 ...
- NHibernate使用Access数据库的配置问题
NHibernate本身不支持Access数据库,一开始看网上各种文档,捣敲浪费了N分钟. 还是祭起Nuget神器引用NHibernate.JetDrive. 代码如下,搞定收工... private ...
- System.Data.OleDb操作access数据库类,【bubuko.com】
access数据库在应用了System.Data.OleDb后操作会很方便,这是一个常用的数据库操作类,其中两个方法,一个是返回datatable的,一个是执行sql语句返回影响记录的(一般是inse ...
- Access数据库的模糊查询到底是用*还是%
今天被用了一下Access数据库,结果被它的模糊查询给折腾了一上午,到底是用*还是%?特此记下来 事情是这样的,我用C#写了个小的窗体程序,访问Access数据库进行一个模糊查询,我先手工往Acces ...
随机推荐
- C# 汉字与区位码之间的相互转换(中文数字字母可以,支持空格,但是特殊字符未来得及测试)
using System; using System.Text; namespace Test { class MainClass { /// <summary> /// 中文空白字符,用 ...
- C++11 并发指南一(C++11 多线程初探)
引言 C++11 自2011年发布以来已经快两年了,之前一直没怎么关注,直到最近几个月才看了一些 C++11 的新特性,今后几篇博客我都会写一些关于 C++11 的特性,算是记录一下自己学到的东西吧, ...
- SharePoint 2010 使用Install-SPSolution部署wsp包状态一直是”正在部署”
1.服务器场信息如下: 2.使用下面命令部署,状态一直是"正在部署" Install-SPSolution –Identity xxxx.wsp –WebApplication h ...
- 017_nginx重定向需求
重定向的各种需求 需求一. 前端同事需要把特定的url进行重定向,实现如下: location / { root /data/base.apiportal_opsweb; index index.ht ...
- centos6.5环境disconf管理端安装配置详解
操作系统:centos6.5 x86_64 安装目录/data 1.安装nginx1.10.1 rpm -ivh http://nginx.org/packages/centos/6/noarch/R ...
- Struts2的类型转换器
Struts2的类型转换器 如何实现Struts2的类型转换器? * 继承StrutsTypeConverter * 覆盖convertFromString和convertToString 注册类型转 ...
- mac安装navicat mysql破解版
下载破解中文版http://m6.pc6.com/xuh6/navicat12027pre.zip 完成下载后无法正常进行安装,此时应该打开命令行执行 sudo spctl --master-disa ...
- java.util.Random 类
//: object/ForEachFloat.java package object; import java.util.Random; public class ForEachFloat { pu ...
- kettle的下载、安装和初步使用(windows平台下)(图文详解)
kettle的下载 Kettle可以在http://kettle.pentaho.org/网站下载 http://sourceforge.net/projects ...
- Python列表split方法
转载自:https://www.cnblogs.com/douzi2/p/5579651.html 1.split翻译为分裂. split()就是将一个字符串分裂成多个字符串组成的列表. 2.spl ...