1、基于基于C#的的Windows应用开发应用开发 主讲人:主讲人:杨丽娟杨丽娟 计算机科学与工程系计算机科学与工程系目标目标v创建数据库应用程序创建数据库应用程序第第12章章 创建数据库应用程序创建数据库应用程序12.1 数据库基础知识数据库基础知识12.2 使用数据库系统使用数据库系统12.3 SQL查询基础查询基础12.4 ADO.NET概述概述12.5 创建数据库程序创建数据库程序12.1 数据库基础知识数据库基础知识1.数据库数据库Database,是指一组排列成易于处理或读,是指一组排列成易于处理或读取的相关信息,它是由一个或多个表对象取的相关信息,它是由一个或多个表对象组成的集合。组
2、成的集合。2.数据库管理系统数据库管理系统DBMS,是指在操作系统支持下为数据库,是指在操作系统支持下为数据库建立、使用和维护而配置的庞大软件,如建立、使用和维护而配置的庞大软件,如Microsoft SQL Server和和Microsoft Access等。等。12.1 数据库基础知识数据库基础知识3.数据库应用程序数据库应用程序数据库应用程序是指用数据库应用程序是指用C#、Visual Basic、FoxPro、Delphi等开发工具设计的、用于等开发工具设计的、用于实现某种特定功能的应用程序。实现某种特定功能的应用程序。4.数据库系统数据库系统 DBS,是由计算机硬件、操作系统、数据,
3、是由计算机硬件、操作系统、数据库管理系统以及在其他对象支持下建立起库管理系统以及在其他对象支持下建立起来的数据库、数据库应用程序、用户和维来的数据库、数据库应用程序、用户和维护人员等组成的一个整体。护人员等组成的一个整体。12.1 数据库基础知识数据库基础知识数据库系统数据库系统12.1 数据库基础知识数据库基础知识5.关系型数据库关系型数据库v表表v记录记录v字段字段v关键字关键字v索引索引v关系关系第第12章章 创建数据库应用程序创建数据库应用程序12.1 数据库基础知识数据库基础知识12.2 使用数据库系统使用数据库系统12.3 SQL查询基础查询基础12.4 ADO.NET概述概述12
4、.5 创建数据库程序创建数据库程序12.2 使用数据库系统使用数据库系统 1.Microsoft Access(单机环境单机环境)v 创建数据库创建数据库 v 创建数据表创建数据表2.Microsoft SQL Server(网络环境网络环境)v 创建创建SQL Server数据库数据库 v 在在SQL Server中创建表中创建表 v 使用使用SQL Server客户端工具客户端工具第第12章章 创建数据库应用程序创建数据库应用程序12.1 数据库基础知识数据库基础知识12.2 使用数据库系统使用数据库系统12.3 SQL查询基础查询基础12.4 ADO.NET概述概述12.5 创建数据库程
5、序创建数据库程序12.3 SQL查询基础查询基础 vSelect:查询数据,从数据库中返回记录集查询数据,从数据库中返回记录集vInsert:向数据表中插入一条记录向数据表中插入一条记录vUpdate:修改数据表中的记录修改数据表中的记录vDelete:删除表中的记录删除表中的记录vCreate:创建一个新的数据表创建一个新的数据表vDrop:删除一个数据表删除一个数据表 Select语句语句 vSelect 字段名字段名 from 表名表名 where 条件表达式条件表达式Insert语句语句 vInsert into 表名表名(字段名字段名1,字段名,字段名2,)values(字段值字段值
6、1,字段值,字段值2,)Update语句语句 vUpdate 表名表名 set 字段名字段名1=字段值字段值1,字段名,字段名 2=字段值字段值2,where 条件表达式条件表达式Delete语句语句 vDelete from 表名表名 where 条件表达式条件表达式第第12章章 创建数据库应用程序创建数据库应用程序12.1 数据库基础知识数据库基础知识12.2 使用数据库系统使用数据库系统12.3 SQL查询基础查询基础12.4 ADO.NET概述概述12.5 创建数据库程序创建数据库程序12.4 ADO.NET概述概述vADO.NET是美国微软公司最新推出的是美国微软公司最新推出的.NE
7、T平台中的一种数据访问技术;平台中的一种数据访问技术;vSystem.Data名称空间;名称空间;vADO.NET支持已连接环境和非连接环境的支持已连接环境和非连接环境的数据访问。数据访问。12.4.1 ADO.NET对象体系对象体系 ADO.NET 数数据据提提供供程程序序(.NET Data Provider)Connection Command DataAdapter DataReader 数数据据集集(DataSet)数数据据使使用用程程序序 W inForm W ebForm Other 12.4.2 ADO.NET 五大对象五大对象DataSetConnectionCommandD
8、ataAdapterDataReader.NET FrameWork数据提数据提供程序四大核心对象供程序四大核心对象第第12章章 创建数据库应用程序创建数据库应用程序12.1 数据库基础知识数据库基础知识12.2 使用数据库系统使用数据库系统12.3 SQL查询基础查询基础12.4 ADO.NET概述概述12.5 创建数据库程序创建数据库程序12.5 创建数据库程序创建数据库程序创建创建ADO.NET应用程序的一般步骤:应用程序的一般步骤:1)创建创建Connection对象连接数据库对象连接数据库2)创建创建Command对象或对象或DataAdapter对象,对象,执行执行SQL语句语句3
9、)创建创建DataReader 对象或对象或DataSet对象,获取对象,获取数据数据4)创建创建Windows窗体窗体,完成应用程序界面设计。完成应用程序界面设计。5)编写控件代码,完成具体功能。编写控件代码,完成具体功能。12.5.1 连接数据库连接数据库.NET Framework 数据提供程序数据提供程序Connection 类类SQL 数据提供程序数据提供程序SqlConnectionOLE DB 数据提供程序数据提供程序OleDbConnectionOracle 数据提供程序数据提供程序OracleConnectionODBC 数据提供程序数据提供程序OdbcConnection1
10、2.5.1 连接数据库连接数据库v 连接方法连接方法1、在设计时创建连接对象:使用数据源配置向导。、在设计时创建连接对象:使用数据源配置向导。执行菜单:数据执行菜单:数据添加新数据源。添加新数据源。12.5.1 连接数据库连接数据库v 连接方法连接方法2、在运行时创建连接对象、在运行时创建连接对象:引入引入System.Data.SqlClient命名空间。命名空间。(1)采用用户名、密码验证方式连接)采用用户名、密码验证方式连接SQL Server数数据库据库string connstr=Password=ylj;Persist Security Info=True;User ID=ylj;
11、Initial Catalog=ylj;Data Source=(local);SqlConnection conn=new SqlConnection(connstr);conn.Open();12.5.1 连接数据库连接数据库string connstr=Data Source=(local);Initial Catalog=db_user;Persist Security Info=True;User ID=sa;Password=sql;连接字符串参数:连接字符串参数:vData Source:数据源:数据源(数据库服务器名称数据库服务器名称),local表示本机数据库服务器;表示本机
12、数据库服务器;vInitial Catalog:数据库名称;:数据库名称;vPersist Security Info:是否保存安全:是否保存安全信息信息vUserID:用户名;:用户名;vPassword:密码;:密码;12.5.1 连接数据库连接数据库v 连接方法连接方法2、在运行时创建连接对象、在运行时创建连接对象(2)采用集成验证方式连接)采用集成验证方式连接SQL Server数据库数据库String strCon=“Data Source=(local);Initial Catalog=db_user;Integrated Security=True连接字符串参数:连接字符串参数:
13、Integrated Security:是否使用当前的:是否使用当前的 Windows 帐户进行身份验证;帐户进行身份验证;12.5.1 连接数据库连接数据库v 连接方法连接方法关闭数据库连接对象关闭数据库连接对象在在 ADO.NET 中,必须显式关闭连接,才能释中,必须显式关闭连接,才能释放实际的数据库连接,如下:放实际的数据库连接,如下:conn.Close();12.5.2 Command对象对象.NET Framework 数据提供程序数据提供程序Command 类类SQL 数据提供程序数据提供程序SqlCommandOLE DB 数据提供程序数据提供程序OleDbCommandOra
14、cle 数据提供程序数据提供程序OracleCommandODBC 数据提供程序数据提供程序OdbcCommand12.5.2 Command对象对象Command属性属性说明说明CommandText获取或设置对数据库进行操作的命令获取或设置对数据库进行操作的命令或存储过程内容或存储过程内容CommandTimeout获取或设置中止执行命令需要的时间获取或设置中止执行命令需要的时间CommandType获取或设置执行的命令的类型获取或设置执行的命令的类型Connection获取或设置使用的数据库连接获取或设置使用的数据库连接12.5.2 Command对象对象Command方法方法说明说明E
15、xecuteNonQuery()返回受影响的行数返回受影响的行数ExecuteReader()返回返回DataReader类型值类型值ExecuteScalar()返回第一行第一列返回第一行第一列12.5.2 Command对象对象v用用CommandCommand对象;对象;SqlCommand comm=new SqlCommand(sqlstr,conn);或:或:comm.ComandText=sqlstr;comm.Connection=conn;comm.ExecuteNonQuery();12.5.2 Command对象对象v查询数据库数据查询数据库数据string connst
16、r=Data Source=(local);Initial Catalog=db_user;Persist Security Info=True;User ID=sa;Password=sql;conn=new SqlConnection(connstr);conn.Open();commstr=insert into tb_user values(ylj,ylj);comm=new SqlCommand(commstr,conn);comm.ExecuteNonQuery();12.5.2 DataReader对象对象v用用DataReaderDataReader对象读取数据;对象读取数据;
17、SqlCommand comm=new SqlCommand(sqlstr,conn);或:或:comm.ComandText=sqlstr;comm.Connection=conn;SqlDataReader dreader=comm.ExecuteReader();DataReader对象不能用代码直接创建,只能调用对象不能用代码直接创建,只能调用Command对象的对象的ExcuteReader方法创建。方法创建。12.5.2 DataReader对象对象v例:用户登录界面。例:用户登录界面。12.5.2 DataReader对象对象v例:列出数据库所有用户名的登录界面。例:列出数据库所
18、有用户名的登录界面。12.5.4 DataAdapter对象对象方法方法说明说明Fill用于添加或刷新数据集,以便使数据集与用于添加或刷新数据集,以便使数据集与数据源匹配数据源匹配FillSchema 用于在数据集中添加用于在数据集中添加 DataTable,以便与数以便与数据源的结构匹配据源的结构匹配Update 向数据库提交存储在向数据库提交存储在DataSet(或或DataTable、DataRows)中的更改。该方法会返回一个整中的更改。该方法会返回一个整数值。数值。12.5.4 DataAdapter对象对象/连接数据库连接数据库string connstr=Data Source=
19、(local);Initial Catalog=db_user;Persist Security Info=True;User ID=sa;Password=sql;conn=new SqlConnection(connstr);conn.Open();/用用DataAdapter对象提取数据对象提取数据string sqlstr=“select*from tb_user”;SqlDataAdapter da=new SqlDataAdapter(sqlstr,conn);SqlCommandBuilder cb=new SqlCommandBuilder(da);12.5.5 DataSet
20、对象对象DataSet 类的层次结构DataSetDataTableDataColumnCollectionDataRowCollectionDataColumnDataRowDataTableCollection12.5.5 DataSet对象对象vDataSetvDataTablevDataRowvDataColumn12.5.5 DataSet对象对象/定义数据集定义数据集DataSet ds=new DataSet();/向数据集中填充数据向数据集中填充数据da.Fill(ds,“mytable);txtname.Text=ds.Tables“mytable.Rows0username
21、.ToString();12.5.5 DataSet对象对象/获取获取DataSet中数据中数据txtname.Text=ds.Tables“mytable”.Rows0username.ToString();/向向DataTable中添加新数据中添加新数据DataRow newdr=ds.Tablesusertable.NewRow();newdrusername=txtname.Text;newdrpassword=txtpwd.Text;ds.Tablesusertable.Rows.Add(newdr);da.Update(ds.Tablesusertable);或:或:da.Upda
22、te(ds,usertable);12.5.5 DataSet对象对象/删除数据删除数据(1)ds.Tablesusertable.Rowsmyrow.Delete();da.Update(ds.Tablesusertable);(2)commstr=delete from tb_user where username=+txtname.Text+;comm=new SqlCommand(commstr,conn);comm.ExecuteNonQuery();12.5.6 数据绑定数据绑定v简单型:绑定后只显示字段的单个简单型:绑定后只显示字段的单个记录,如记录,如TextBox、Label
23、。v复杂型:绑定后显示字段的多个记复杂型:绑定后显示字段的多个记录,如录,如ComBox、ListBox。C#中用于显示数据的控件是中用于显示数据的控件是 DataGridView 控件。控件。12.5.6 数据绑定数据绑定1、DataGridView控件控件v程序中用代码动态设置:程序中用代码动态设置:v设置设置DataSourcev设置设置DataMember属性:属性:SelectionMode、MultiSelect。12.5.6 数据绑定数据绑定绑定方法绑定方法1:dbg1.DataSource=ds.Tables mytable.DefaultView;绑定方法绑定方法2:dbg1
24、.DataSource=ds;dbg1.DataMember=“mytable;12.5.6 数据绑定数据绑定获取选中行信息方法:获取选中行信息方法:textBox1.Text=dataGridView1.SelectedRows0.Cells0.Value.ToString();12.5.6 数据绑定数据绑定删除选中行方法:删除选中行方法:foreach(DataGridViewRow dr in dataGridView1.SelectedRows)dataGridView1.Rows.Remove(dr);da.Update(ds,userinfo);12.5.6 数据绑定数据绑定2、其
25、它常用控件其它常用控件vTextBox控件控件vtxtBox1.DataBindings.Add(“Text”,dataSet1.Tables“mytable”,“name”);vLabel控件控件vlabel1.DataBindings.Add(“Text”,dataSet1.Tables“mytable”,“name”);12.5.6 数据绑定数据绑定2、其它常用控件其它常用控件vListBox控件控件DataSource(要显示的数据集要显示的数据集)DisplayMember(控件显示的字段控件显示的字段)ValueMember(实际使用的值实际使用的值)vComboBox控件控件Da
26、taSourceDisplayMemberValueMember12.5.6 数据绑定数据绑定2、其它常用控件其它常用控件vComboBox控件控件comboBox1.DataSource=ds.Tablesusertable.DefaultView;comboBox1.DisplayMember=username;comboBox1.ValueMember=username;v要改列名:要改列名:dataGridView1.Columns0.HeaderText=姓名姓名;小结小结vADO.NET创建数据库程序创建数据库程序v连接数据库:连接数据库:Connection对象对象v访问数据库:访问数据库:Command/DataReader/DataAdapter对象。对象。v填充数据集填充数据集数据适配器数据适配器v数据绑定数据绑定数据表格(数据表格(DataGridView)ComboBox本章上机题目一本章上机题目一本章上机题目二本章上机题目二