您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第7章-C#数据库编程技术
1.NET程序设计杨剑yang_jian03@126.com2C#程序设计语言第一章:.NET与C#概述第二章:面向对象程序设计第三章:集合、索引器与泛型第四章:程序调试与异常处理第五章:基于事件驱动的程序设计第六章:Windows程序设计技术第七章:C#数据库编程技术第八章:文件操作与编程技术第九章:多线程和异步编程第七章C#数据库编程技术4本章目标熟悉Command对象操作数据的方法了解ADO.NET的功能和组成熟悉Connection对象连接到数据库的方法了解数据集(DataSet)的结构的方法熟悉数据适配器操作数据的方法掌握DataGridView控件的使用的方法ADO.NET概述数据库使用数据库存储数据SQL-ServerACCESSORACLE数据库访问的方法和技术ADO.NET的主要组件ADO.NETDataSet(数据集).NETFramework数据提供程序只进、只读访问数据独立于数据源的数据访问ADO.NET操作数据库结构图.NET数据提供程序类型.NETFramework数据提供程序说明SQLServer.NET数据提供程序MicrosoftSQLServer数据源System.Data.SqlClient命名空间OLEDB.NET数据提供程序OLEDB公开的数据源System.Data.OleDb命名空间ODBC.NET数据提供程序ODBC公开的数据源System.Data.Odbc命名空间Oracle.NET数据提供程序Oracle数据源System.Data.OracleClient命名空间为什么使用Connection应用程序数据源请求数据Connection桥梁代码分析关键代码回顾//数据库连接字符串stringconnString=DataSource=.;InitialCatalog=MySchool;UserID=sa;//创建Connection对象SqlConnectionconnection=newSqlConnection(connString);//打开数据库连接connection.Open();MessageBox.Show(打开数据库连接成功);//关闭数据库连接connection.Close();MessageBox.Show(关闭数据库连接成功);表示本机Connection主要成员属性说明ConnectionString连接字符串方法说明Open打开数据库连接Close关闭数据库连接必须显式关闭连接连接数据库步骤连接数据库的步骤:1、定义连接字符串2、创建Connection对象3、打开与数据库的连接DataSource=服务器名;InitialCatalog=数据库名;UserID=用户名;Pwd=密码SqlConnectionconnection=newSqlConnection(connString);连接字符串connection.Open();没有密码,可省略Connection对象命名空间对应的Connection对象System.Data.SqlClientSqlConnectionSystem.Data.OleDbOleDbConnectionSystem.Data.OdbcOdbcConnectionSystem.Data.OracleClientOracleConnection不同命名空间的Connection对象为什么使用Command应用程序打开数据库处理数据……数据源Connection怎样处理数据执行命令并从数据源中返回结果Command的主要成员属性说明ConnectionCommand对象使用的数据库连接CommandText执行的SQL语句方法说明ExecuteNonQuery执行不返回行的语句,如UPDATE等ExecuteReader返回DataReader对象ExecuteScalar返回单个值,如执行COUNT(*)使用Command步骤使用Command步骤:1、创建数据库连接2、定义SQL语句3、创建Command对象4、执行命令SqlConnectionconnection=newSqlConnection(connString);stringsql=SELECTCOUNT(*)FROMStudent;connection.Open();//打开数据库连接SqlCommandcommand=newSqlCommand(sql,connection);intnum=(int)command.ExecuteScalar();关键代码:执行命令前,必须打开数据库连接!要进行类型转换!综合示例完成系统登录功能1、验证管理员的用户名和密码是否存在2、验证通过,显示管理员主窗体处理登录按钮的Click事件定义一个ValidateUser()方法需要Connection和Command对象分两步实现验证:1、建立数据库连接2、验证用户是否存在用户验证方法框架ValidateUser()方法框架1、验证的结果:通过,不通过返回值为bool型2、方法需要:用户名,密码,登录类型值方式传参3、不通过的原因:用户名或密码不存在、其他原因引用方式传参publicboolValidateUser(stringloginType,stringloginId,stringloginPwd,refstringmessage){}为什么使用DataReader怎样读取数据库的数据?应用程序毛毛,电子科大,优秀毛毛姓名:学校:电子科大成绩:优秀使用DataReader对象数据库DataReader对象每次读取一行数据命名空间对应的DataReader对象System.Data.SqlClientSqlDataReaderSystem.Data.OleDbOleDbDataReaderSystem.Data.OdbcOdbcDataReaderSystem.Data.OracleClientOracleDataReader使用DataReader查询数据添加年级组合框中的年级名称处理窗体Load事件使用DataReader读取年级名称示例1代码分析关键代码回顾:示例1源代码//执行查询SqlDataReaderdataReader=command.ExecuteReader();stringgradeName=;//年级名称//循环读出所有的年级名,并添加到年级列表框中while(dataReader.Read()){gradeName=(string)dataReader[0];cboGrade.Items.Add(gradeName);}dataReader.Close();循环读取数据行添加到组合框中DataReader的主要成员DataReader的主要成员:属性说明HasRows是否返回了结果方法说明Read前进到下一行记录Close关闭DataReader对象DataReader使用步骤小结使用DataReader检索数据的步骤:1、创建Command对象2、调用ExecuteReader()创建DataReader对象3、使用DataReader的Read()方法逐行读取数据4、读取某列的数据,(type)dataReader[]5、关闭DataReader对象获取某列的值:方法一:指定列的索引,从0开始方法二:指定列名注意:DataReader使用后必须关闭小结编写控制台程序,从MySchool数据库的Student表中,读取出所有姓“李”学员的姓名参考代码stringsql=SELECTStudentNameFROMStudentWHEREStudentNameLIKE'李%';SqlCommandcommand=newSqlCommand(sql,connection);connection.Open();SqlDataReaderdataReader=command.ExecuteReader();Console.WriteLine(查询结果:);while(dataReader.Read()){Console.WriteLine((string)dataReader[StudentName]);}dataReader.Close();操作数据如何对数据库的数据进行增删改?应用程序毛毛,电子科大,良好毛毛姓名:学校:电子科大成绩:良好使用ExecuteNonQuery()方法数据库操作数据示例怎样新增学员用户?处理“保存”按钮的Click事件使用ExecuteNonQuery()方法向数据库增加记录代码分析关键代码回顾://创建command对象SqlCommandcommand=newSqlCommand(sql,DBHelper.connection);//打开数据库连接DBHelper.connection.Open();//执行命令intresult=command.ExecuteNonQuery();……返回受影响记录的行数ExecuteNonQuery()方法小结该方法执行指定的sql语句返回受影响的行数使用ExecuteNonQuery()的步骤小结:1、创建Connection对象2、定义sql语句3、创建Command对象4、执行ExecuteNonQuery()方法5、根据返回的结果进行处理privatevoidbtnAdd_Click(objectsender,EventArgse){stringconnStr=……;SqlConnectionconnection=newSqlConnection(connStr);//向数据库中添加年级名称的代码}小结向数据库中添加年级假设数据库连接字符串已知为connStr将添加年级名称部分的代码补充完整stringconnStr=…;SqlConnectionconnection=newSqlConnection(connStr);//插入记录用的SQL语句stringsql=string.Format(INSERTINTOGrade(GradeName)VALUES('{0}'),txtGradeName.Text);//创建Command对象SqlCommandcommand=newSqlCommand(sql,connection);//打开数据库连接connection.Open();//执行插入命令intresult=command.ExecuteNonQuery();connection.Close();//关闭数据库连接查询数据综合示例如何实现学员信息查询功能?使用DataReader查询数据使用ListView控件显示数据代码分析关键代码回顾——查询信息://执行查询用户命令dataReader=command.ExecuteReader();……while(dataReader.Read()){//读取各列的数据loginId=(string)dataReader[LoginId];……//向ListView中添加记录}dataReader.Close();//关闭DataReader对象回顾DataReader的使用步骤代码分析关键代码回顾——添加记录到ListView://创建一个ListView项ListViewItemlviStudent=newListViewItem(loginId);//将ID放在Tag中lviStudent.Tag=(int)dataReader[StudentID];//向ListView中添加一个新项lvStudent.Items.Add(lviStudent);//向当前项中添加子项lviStudent.SubItems.AddRange(newstring[]{studentName,studentNO,userState});创建列表视图项添加列表视图项添加列表视图项的子项控件进阶——列表视图控件ListView:列表视图控件以特定样式或视
本文标题:第7章-C#数据库编程技术
链接地址:https://www.777doc.com/doc-4711336 .html