您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 数据库操作示例说明文档
ASP.NET和ADO.NET数据库开发技术本章主要介绍ASP.NET和ADO.NET基础知识,ASP.NET连接数据库方法,ADO.NET读取和操作数据库数据等基于.NET数据库开发技术。并以VS.NET2005作为开发平台,结合实例介绍DataSet、GridNew、DataList等常用数据服务控件。1ADO.NET命名空间在ASP.ENT文件中通过ADO.NET访问数据需要引入几个命名空间,ADO.NET命名空间如表10.1所示。表10.1ADO.NET命名空间ADO.NET命名空间说明System.Data提供ADO.NET构架的基类System.Data.OleDB针对OLEDB数据源所设计的数据存取类System.Data.SqlClient针对MicrosoftSQLServer数据源所设计的数据存取类2数据集(DataSet)数据集即DataSet类。DataReader类和DataSet类是ASP.NET处理数据的两种主要方法。DataSet类为数据提供了一种与数据无关的内存驻留表示形式。这些数据通过合适的DataAdapter来显示和更新后台数据库。DataSet类也可以从XML文件和Stream对象中读取。通过在数据集中插入、修改、删除DataTable、DataColumns和DataRows,可以实现编程构建和操作数据集。也可以用这样的数据集更新后台数据库,只要使用数据集中的Update方法即可。类型化数据集使代码易于阅读,并且不易出错。也可以用一个DataView来过滤用于显示或者计算的数据集的内容。2.1使用DataAdapter类DataAdapter类即数据适配器,它是将后台数据库的数据写入数据集,并用数据集中的数据更新数据库。.NET框架安装了两个数据适配器:SqlDataAdapter和OleDBDataAdapter。每个DataAdapter都使用适当的Connection类和Command类获取和更新数据。DataAdapter包含由4个Command类的实例组成的一个集合:SelectCommand、InsertCommand、UpdateCommand和DeleteCommand。当使用SqlDataAdapter时,这4个类为SqlCommand类;当使用OleDBCommand时,这4个类为OleDBCommand类。SqlDataAdapter类和OleDBDataAdapter类的Fill方法使用的对象Command,由DataAdapter的SelectCommand属性指定,数据集用后台数据库的结果填充。下面的代码创建一个连接,然后创建一个新的SqlDataAdapter,并把它的SelectCommand属性设置为新创建的SqlCommand对象,这个对象使用由SQL参数指定的查询。最后,代码创建了一个新数据集,并用SqlDataAdapter的Fill方法填充它,然后关闭这个连接。//SQL语句stringSQL=usestudbSelectcount(*)FromS;;//数据库连接字符串stringConnStr=server=localhost;uid=sa;pwd=sa;//实例化数据库连接SqlConnectionmySqlConn=newSqlConnection(ConnStr);mySqlConn.Open();SqlDataAdaptermySqlAdapter=newSqlDataAdapter();mySqlAdapter.SelectCommand=newSqlCommand(SQL,mySqlConn);DataSetmyDS=newDataSet();//填充数据mySqlAdapter.Fill(myDS);//释放连接mySqlConn.Close();这样,数据集里的数据就可以被更新、删除、插入。2.2使用DataTables、DataColumns和DataRows填充数据集的另外一种方法就是编程创建它的表、列或行。这样不必连接一个后台数据库就可以创建数据集。假设创建的表的构架与数据库匹配,就可以连接数据库并根据程序添加到数据集中的行来更新数据库。例10.3在数据库studb的S表中插入一条新记录。这里使用SqlCommandBuilder对象来自动创建UpdataCommand(当SqlAdapter的Update方法被调用时,这个命令就被调用)。(1)新建一个名为sample_10.3的ASP.NET网站。打开default.aspx的设计页面,从工具箱中拖出5个Label1、5个TextBox、1个Button控件和1个GridView控件到设计界面,设置这些的ID、Text属性。如图10.7所示。图10.7事例sample_10.3的设计界面(2)双击空白页面切换到后台编码文件Default.aspx.cs,添加如下命名空间:usingSystem.Data.SqlClient;(3)在事件处理程序Button1_Click()中添加如下代码:stringSQL=usestudbselect*fromS;stringmyStr=server=localhost;database=studb;uid=sa;pwd=sa;//SQLServer和Windows混合模式//stringmyStr=server=localhost;IntegratedSecurity=SSPI;//仅Windows身份验证模式SqlConnectionmyConnection=newSqlConnection(myStr);myConnection.Open();SqlDataAdaptermySqlDA=newSqlDataAdapter(SQL,myConnection);SqlCommandBuildermySqlCB=newSqlCommandBuilder(mySqlDA);DataSetmyDS=newDataSet();DataTableSTable;DataRowSRow;mySqlDA.Fill(myDS);STable=myDS.Tables[0];SRow=STable.NewRow();SRow[SNO]=TextBox1.Text;SRow[SNAME]=TextBox2.Text;SRow[AGE]=Convert.ToInt16(TextBox3.Text);SRow[SEX]=TextBox4.Text;SRow[DNAME]=TextBox5.Text;STable.Rows.Add(SRow);mySqlDA.Update(myDS);GridView1.DataSource=myDS.Tables[0].DefaultView;GridView1.DataBind();myConnection.Close();(4)Ctrl+F5运行,在运行的页面中点击“添加”命令按钮,则将插入的新记录添加到数据表S中,并在右侧的GridView1控件中显示表S信息。运行结果如图10.8所示。图10.8事例sample_10.3运行结果10.6DataReader类如果需要对数据的更新、返回以及读写构架等有严格的控制,则数据集是最佳的选择,但如果只需要迅速有效地显示某一些数据,使用DataReader比较方便。DataReader对象提供一个只读的、单向向前移动的记录集。使用DataReader对象可以有效地节约内存,因为内存中一次只会保存一条记录,而不是将所有的记录都装入。DataReader分为SqlDataReader和OleDBReader两种,它们分别基于SQLServer数据库和OLEDB数据库。DataReader对象的常用属性和方法如表10.6和10.7所示。表10.6DataReader对象的属性属性说明FieldCount用于表明当前记录的字段(列)数量。只读属性HasMoreRows用于表明是否还有记录未被读取。只读属性IsClosed用于表明DataReader对象是否已经关闭。只读属性Item用于引用字段的内容,可以用字段名或字段序数来引用字段。只读属性表10.7DataReader对象的方法方法说明Close用于关闭DataReader对象GetDataTypeName用于获取字段的数据类型名GetName用于获取字段名GetOrdinal用于获取字段序数GetValues用于读取记录的所有字段的内容IsNull用于判断某个字段内容是否为空Read用于表明是否还有记录能被读取,如果有,则读取下一条记录例10.4使用DataReader读取数据库studb的S表中的数据。步骤:(1)新建一个名为sample_10.4的ASP.NET网站,打开Default.aspx的设计页面,从工具箱中拖出GridView控件到设计界面,如图10.9所示。图10.9事例sample_10.4的设计界面(2)双击空白页面切换到后台编码文件Default.aspx.cs,添加如下命名空间:usingSystem.Data.SqlClient;(3)在事件处理程序Page_Load()里添加如下代码:stringSQL=usestudbselect*fromS;stringSQL=usestudbselect*fromS;stringmyStr=server=localhost;database=studb;uid=sa;pwd=sa;//SQLServer和Windows混合模式//stringmyStr=server=localhost;IntegratedSecurity=SSPI;//仅Windows身份验证模式SqlConnectionmyConnection=newSqlConnection(myStr);myConnection.Open();SqlCommandmySqlDA=newSqlCommand(SQL,myConnection);SqlDataReadermyDataReader=mySqlDA.ExecuteReader();GridView1.DataSource=myDataReader;GridView1.DataBind();myConnection.Close();(4)Ctrl+F5运行,则在GridView控件中显示表S中的数据。如图10.10所示。图10.10事例sample_10.4运行结果10.7DataGrid和GridView控件DataGrid控件是ASP.NET中功能强大也是最复杂的数据服务控件。可以用来显示和格式化数据表中的数据,并可以编辑数据表中的记录,可以实现数据的排序和分页。GridView控件是DataGrid控件的后继控件。DataGrid和GridView控件都是从WebControl类派生的。虽然GridView控件与DataGrid控件具有类似的对象模型。与DataGrid控件相似,GridView控件旨在HTML表中显示数据。但与DataGrid控件相比,GridView控件还具有许多新功能和优势,包括更丰富的设计时功能;改进的数据源绑定功能;排序、分页、更新和删除的自动处理;其他列类型和设计时列操作;具有PagerTemplate属性的自定义页导航用户界面(UI)等。下面对GridView控件进行一些简单的介绍。首先介绍GridView分页显示时用到的一些属性,如表10.8所示。表10.8GridView分页显示属性属性说明AllowPaging表明是否允许对DataGrid控件进行页面导航。默认值为FalsePageSize获取或指定在一页上显示的记录数据量。默认值为10PagerStyle指定页面导航标志的风格PagerSettings-Mode指定页面导航标志使用的模式。可取值为NextPrev和NumericPages。默认为NextPrevPagerSettings-NextPageText指定页面导航到下一页的
本文标题:数据库操作示例说明文档
链接地址:https://www.777doc.com/doc-4460322 .html