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 ...
随机推荐
- centos7和centos6.5环境rpm方式安装mysql5.7和mysql5.6详解
centos环境安装mysql5.7 其实不建议安装mysql5.7 语法和配置可能和以前的版本区别较大,多坑,慎入 1.yum方式安装(不推荐) a.安装mysql5.7 yum源 centos6: ...
- Tomcat启动startup.bat闪退和JRE_HOME错误
转载:http://blog.csdn.net/xushikuan/article/details/8132317 昨天学习Struts2,下载Tomcat7,太恶心了. 先是报个错,无法启动,基本意 ...
- BN(Batch Normalization)
Batch Nornalization Question? 1.是什么? 2.有什么用? 3.怎么用? paper:<Batch Normalization: Accelerating Deep ...
- 区间dp的一些模式和总结
参考博客:https://blog.csdn.net/my_sunshine26/article/details/77141398 https://blog.csdn.net/qq_38569113/ ...
- cf1061D 贪心+multiset 好题!
cf上的思维题真好! 本题是在模拟的基础上贪心即可:将n段时间按照左端点(右端点为第二关键字)从小到大排序,然后遍历每一个时间段. 对于每一个时间段[li,ri],先找到multiset中最靠近li但 ...
- python + slenium自动化测试设置元素等待
WebDriver 提供了两种类型的等待:显式等待和隐式等待. 显式等待 显式等待使 WebdDriver 等待某个条件成立时继续执行,否则在达到最大时长时抛出超时异常 (TimeoutExcepti ...
- hdu 4707 仓鼠 记录深度 (BFS)
题意:linji的仓鼠丢了,他要找回仓鼠,他在房间0放了一块奶酪,按照抓鼠手册所说,这块奶酪可以吸引距离它D的仓鼠,但是仓鼠还是没有出现,现在给出一张关系图,表示各个房间的关系,相邻房间距离为1,而且 ...
- Json的简单使用
1>:推荐JSON学习的网址:http://www.w3school.com.cn/json/index.asp 2>:JSON: JavaScript 对象表示法(JavaScript ...
- 记一次Oracle分区表错误:ORA-14400: 插入的分区关键字未映射到任何分区
https://blog.csdn.net/xdyzgjy/article/details/42238735
- [转] 通过Ajax方式上传文件,使用FormData进行Ajax请求
通过传统的form表单提交的方式上传文件: <form id= "uploadForm" action= "http://localhost:8080/cfJAX_ ...