您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 任务14-开发基于Access的通讯录程序
1任务14开发基于Access的通讯录程序2创建数据库(1)启动MicrosoftAccess2007,新建空白数据库3弹出新建文件对话框,选择保存类型为MicrosoftOfficeAccess2002-2003数据库(*.mdb),并修改保存位置为C:,输入数据库名称为AddressList.mdb4创建数据表和关系(1)打开AddressList.mdb数据库,切换到“创建”选项卡,点击“表设计”图标5创建数据表和关系(2)进入“表设计器”窗体6创建数据表和关系(3)按照第1章的表1.1设计User表并保存7创建数据表和关系(4)按照第1章的表1.2设计联系人分组表ContactGroup并保存8创建数据表和关系(5)按照第1章的表1.3设计联系人表Contact并保存9创建数据表和关系(6)点击Access2007工具栏上的“数据库工具”选项卡,再点击“关系”图标,弹出“显示表”对话框,选择ContactGroup及Contact表,点击“添加”按钮。10创建数据表和关系(7)出现所示的关系图11创建数据表和关系(8)选择ContactGroup表的Id列,按下鼠标左键不放,拖动至Contact表的GroupId列12创建数据表和关系(9)勾选“实施参照完整性”,点击“创建”按钮,完成数据库关系的创建13创建新的类库项目AccessDAL复制任务13中的整个解决方案文件夹到一个新的目录下,在VisualStudio2008中打开解决方案,在解决方案中添加一个类库项目AccessDAL14创建新的类库项目AccessDAL创建完毕后,整个解决方案共包括6个项目15创建新的类库项目AccessDAL创建完毕后,整个解决方案共包括6个项目16编写Access数据库访问类对象名称System.Data.SqlClient命名空间System.Data.OleDb命名空间连接对象SqlConnectionOleDbConnection数据适配器对象SqlDataAdapterOleDbDataAdapter数据读取对象SqlDataReaderOleDbDataReader命令对象SqlCommandOleDbCommandSQL参数SqlParameterOleDbParameter17为了程序部署方便,我们把Access数据库路径也写到配置文件中,修改WinForm项目中的App.config文件,添加下面的的配置信息:appSettingsaddkey=DbPathvalue=C:\AddressList.mdb//appSettings这时,完整的App.config文件内容如下:?xmlversion=1.0encoding=utf-8?configurationconnectionStringsaddname=ConnectionStringconnectionString=DataSource=.\sqlexpress;InitialCatalog=AddressList;IntegratedSecurity=TrueproviderName=System.Data.SqlClient//connectionStringsappSettingsaddkey=DbPathvalue=C:\AddressList.mdb//appSettings/configuration18了解了Access数据库的访问方法后,我们来实现Access数据库访问类OleDbHelper.cs。(1)在AccessDAL类库中添加对System.Configuration程序集的引用,新建数据库访问类OleDbHelper.cs。添加命名空间:usingSystem.Data;usingSystem.Data.OleDb;usingSystem.Configuration;(2)定义数据库连接字符串首先在OleDbHelper类中添加如下的代码:privatestaticstringconnString=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=+ConfigurationManager.AppSettings[DbPath];///summary///设置数据库连接字符串////summarypublicstaticstringConnectionString{get{returnconnString;}set{connString=value;}}ConfigurationManager.AppSettings[DbPath]读取配置文件中的Access数据库路径信息。由于ConfigurationManager类在程序集System.Configuration中,所以需要在AccessDAL项目中引用程序集System.Configuratio,并在OleDbHelper.cs代码中使用usingSystem.Configuration添加命名空间。19(3)编写ExecuteDataTable方法publicstaticDataTableExecuteDataTable(stringcommandText,OleDbParameter[]parameters){DataTabledata=newDataTable();//实例化DataTable,用于装载查询结果集using(OleDbConnectionconnection=newOleDbConnection(connString)){using(OleDbCommandcommand=newOleDbCommand(commandText,connection)){//如果同时传入了参数,则添加这些参数if(parameters!=null){foreach(OleDbParameterparameterinparameters){command.Parameters.Add(parameter);}}//通过包含查询SQL的OleDbCommand实例来实例化OleDbDataAdapterOleDbDataAdapteradapter=newOleDbDataAdapter(command);adapter.Fill(data);//填充DataTable}}returndata;}20(4)编写ExecuteReader方法publicstaticOleDbDataReaderExecuteReader(stringcommandText,OleDbParameter[]parameters){OleDbConnectionconnection=newOleDbConnection(connString);OleDbCommandcommand=newOleDbCommand(commandText,connection);//如果同时传入了参数,则添加这些参数if(parameters!=null){foreach(OleDbParameterparameterinparameters){command.Parameters.Add(parameter);}}connection.Open();21(5)编写ExecuteScalar方法publicstaticObjectExecuteScalar(stringcommandText,OleDbParameter[]parameters){objectresult=null;using(OleDbConnectionconnection=newOleDbConnection(connString)){using(OleDbCommandcommand=newOleDbCommand(commandText,connection)){//如果同时传入了参数,则添加这些参数if(parameters!=null){foreach(OleDbParameterparameterinparameters){command.Parameters.Add(parameter);}}connection.Open();//打开数据库连接result=command.ExecuteScalar();}}returnresult;//返回查询结果的第一行第一列,忽略其它行和列}22(6)编写ExecuteNonQuery方法publicstaticintExecuteNonQuery(stringcommandText,OleDbParameter[]parameters){intcount=0;using(OleDbConnectionconnection=newOleDbConnection(connString)){using(OleDbCommandcommand=newOleDbCommand(commandText,connection)){//如果同时传入了参数,则添加这些参数if(parameters!=null){for(inti=0;iparameters.Length;i++){command.Parameters.Add(parameters[i]);}//foreach(OleDbParameterparameterinparameters)//{//command.Parameters.Add(parameter);//}}connection.Open();//打开数据库连接count=command.ExecuteNonQuery();}}returncount;//返回执行增删改操作之后,数据库中受影响的行数}23编写User.cs在AccessDAL类库中添加User.cs,用于操作用户表UserusingSystem;usingSystem.Data;usingSystem.Text;usingSystem.Data.OleDb;namespaceAccessDAL{///summary///数据访问类:User////summarypublicpartialclassUser{publicUser(){}#regionMethod//判断用户名、密码是否正确publicboolLogin(stringuserName,stringuserPassword){StringBuilderstrSql=newStringBuilder();strSql.Append(selectcount(1)from[User]);strSql.Append(whereUserName=@UserNameandPassword=@UserPassword);OleDbParameter[]parameters={newOleDbParameter(@UserName,OleDbType.VarChar,50),24newOleDbParameter(@UserPassword,OleDbType.VarChar,50),};parameters[0].Value=userName;parameters[1].Value=userPassword;intn=Convert.ToInt32(OleDbHelper.ExecuteScalar(strSql.ToString(),parameters));if(n==1)returntrue;elsereturnfalse;}//更新用户密码publicboolUpdate(Model.Usermodel){StringBuilderstrSql=newStringBuilder();strSql.Append(update[User]set);strSql.Append([Password]=@Password);strSql.Append(where[UserName]=@UserName);OleDbParameter[]parame
本文标题:任务14-开发基于Access的通讯录程序
链接地址:https://www.777doc.com/doc-4703306 .html