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));
}

最新文章

  1. linux service
  2. ubuntu下设置clion是使用clang和clang++
  3. 25个完美的Opencart模板,让顾客无法抗拒!
  4. nodejs7-buffer
  5. Linux 网络故障排查
  6. LA 5846 (计数) Neon Sign
  7. HDU 4786 Fibonacci Tree (2013成都1006题) 最小生成树+斐波那契
  8. [Swust OJ 649]--NBA Finals(dp,后台略(hen)坑)
  9. CGI编程
  10. 实现DataTables搜索框查询结果高亮显示
  11. WebApi的版本控制
  12. MySQL报错: SQLSTATE[HY000]: General error: 1030 Got error 28 from storage engine
  13. Linux服务器 XAMPP后添加PHP和MYSQL环境变量
  14. Bootstrap table方法,Bootstrap table事件,配置
  15. vue学习(2)
  16. Petrozavodsk Winter Camp, Andrew, 2014, Bipartite Bicolored Graphs
  17. Spark操作:Aggregate和AggregateByKey
  18. Android Notification通知栏的使用,通知栏在Android8.0系统不显示的问题;
  19. Spark记录-Spark on mesos配置
  20. SQL Fundamentals: 表的创建和管理(表的基本操作,闪回技术flashback,表结构修改)

热门文章

  1. shell编程之helloworld
  2. vi与vim
  3. (网络编程)基于tcp(粘包问题) udp协议的套接字通信
  4. angularjs入门(二)
  5. centos7.2环境下安装smokeping对网络状态进行监控
  6. S5PV210 看门狗定时和复位
  7. python 全栈开发,Day121(DButils,websocket)
  8. 步步为营-56-JQuery基础
  9. 关于git中Pageant开机启动且自动关联秘钥
  10. SQL中Union与Union All的区别