![]() 图01:DataSet对象的结构模型图 |
SqlConnection sqlConnection1 = new SqlConnection ( "Data Source=localhost ;Integrated Security=SSPI ;Initial Catalog=Northwind" ) ; //创建数据连接 SqlCommand selectCMD = new SqlCommand ( "SELECT CustomerID , CompanyName FROM Customers" , sqlConnection1 ) ; //创建并初始化SqlCommand对象 SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter ( ) ; custDA.SelectCommand = selectCMD ; sqlConnection.Open ( ) ; //创建SqlDataAdapter对象,并根据SelectCommand属性检索数据 DataSet dsDataSet1 = new DataSet ( ) ; sqlDataAdapter1.Fill ( dsDataSet1 , "Customers" ) ; //使用SqlDataAdapter的Fill方法填充DataSet sqlConnection.Close ( ) ; //关闭数据连接 |
SqlCommandBuilder sqlCommandBuilder1 = new SqlCommandBuilder ( sqlDataAdapter1 ) ; //以sqlDataAdapter1为参数来初始化SqlCommandBuilder实例 dsDataSet1.Tables["Customers"].Rows[0].Delete ( ) ; //删除DataSet中删除数据表Customers中第一行数据 sqlDataAdapter1.Update ( dsDataSet1 ,"Customers" ) ; //调用Update方法,以DataSet中的数据更新从数据库 dsDataSet1.Tables["Customers"].AcceptChanges ( ) ; |
由于不了解DataSet结构和与数据库关系,很多初学者往往只是更新了DataSet中的数据,就认为数据库中的数据也随之更新,所以当打开数据库浏览时发现并没有更新数据,都会比较疑惑,通过上面的介绍,疑惑应当能够消除了。
3. XML和DataSet:
DataSet中的数据可以从XML数据流或文档创建。并且.Net Framework可以控制加载XML数据流或文档中那些数据以及如何创建DataSet的关系结构。加载XML数据流和文档到DataSet中是可使用DataSet对象的ReadXml方法(注意:ReadXml来加载非常大的文件,则性能会有所下降)。ReadXml 方法将从文件、流或 XmlReader 中进行读取,并将 XML 的源以及可选的 XmlReadMode 参数用作参数。该ReadXml方法读取 XML 流或文档的内容并将数据加载到 DataSet 中。根据所指定的XmlReadMode和关系架构是否已存在,它还将创建DataSet的关系架构。
三.DataSet和数据绑定(DataBinding)
数据绑定是数据绑定是绑定技术中使用最频繁,也是最为重要的技术,也可以说是各种.Net开发语言开发数据库应用程序最需要掌握的基本的知识之一。数据绑定之所以很重要,是因为在.Net FrameWork SDK中并没有提供数据库开发的相关组件,即如:DbTextBox、DbLabel等用于数据库开发的常用组件在.Net FrameWork SDK中都没有。而数据绑定技术则能够把TextBox组件"改造"成DbTextBox组件,把Label组件"改造"成DbLabel组件等等。所有这些都与DataSet有直接关系。
数据绑定分成二类:简单型数据绑定和复杂型数据绑定。适用于简单型数据绑定组件一般有Lable、TextBox等,适用于复杂性数据绑定的组件一般有DataGrid、ListBox、ComboBox等。其实简单型数据绑定和复杂性数据绑定并没有明确的区分,只是在组件进行数据绑定时,一些结构复杂一点的组件在数据绑定时操作步骤相近,而另外一些结构简单一点的组件在数据绑定时也比较类似。于是也就产生了二个类别。以下就结合TextBox组件和DataGrid组件分别探讨DataSet在实现简单型数据绑定和复杂性数据绑定作用和具体实现方法。
1. 简单型数据绑定:
简单型数据绑定一般使用这些组件中的DataBindings属性的Add方法把DataSet中某一个DataTable中的某一行和组件的某个属性绑定起来,从而达到显示数据的效果。TextBox组件的数据绑定具体实现方法是在代码清单01后,再添加代码清单03中的代码,代码清单03中的代码是把DataSet中的Customers 数据表中的"CustomerID"的数据和TextBox的Text属性绑定起来,这样DbTextBox就产生了。其他适用于简单型数据绑定组件数据绑定的方法类似与此操作:
代码清单03:
textBox1.DataBindings.Add ( "Text" , dsDataSet1, " Customers. CustomerID " ) ; |
dataGrid1.DataSource = dsDataSet1 ; dataGrid1.DataMember = " Customers " ; |
新闻热点
疑难解答