![]() 圖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 " ; |
新聞熱點
疑難解答