總結.NET開發中ADO.NET的應用(6)_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:關于Gridview的多種使用方法總結
      asp.net中 Gridview的多種使用方法總結,具體如下面 截圖,并包括詳細源代碼注釋,需要的請下載。 1:在Gridview中無須編寫后臺代碼,直接實現增除刪改 2:在Gridview中添加新記錄 3:在Gridview中實現編輯和更新操作 4:在Gridview中實現一次性更新所有記錄


      ◆ 在程序中訪問DataGrid中的內容 
      DataTable中有數據行DataRow,而在DataGrid中沒有行這個對象,這讓人感到很不習慣,也覺得不夠自然。在DataTable中,一張表的層次結構很清楚,DataTable.Rows屬性可以得到這張表所包含的所有行的行集,通過行集的索引DataRowCollection[index]就可以得到具體的一個DataRow,數據行的索引DataRow[index]又可以得到這一行的具體某一列的內容。
      而DataGrid中就沒有這么方便了,DataGrid只有兩個屬性可用,DataGrid.CurrentCell 屬性,此屬性返回一個DataGridCell類型的結構,DataGridCell結構指明此Cell所在的行號和列號。還有一個DataGrid.Item 屬性,此屬性有兩個重載: 
      public object this[DataGridCell] //獲取或設置指定的 DataGridCell 的值
      public object this[int, int] //獲取或設置位于指定行和列的單元格的值 
      可見,DataGrid中訪問都是針對某個Cell進行的。經常的,我們需要從當前的Cell獲得此Cell所對應的DataRow,比如界面中可能先選中DataGrid的某一行,或者某一個Cell,然后點擊一個按鈕,彈出一個新的窗口,窗口中顯示這一行的所有單元的內容,并允許修改單元的值,最后保存關閉窗口。這就需要從當前的DataGrid所在的單元找到其所對應的DataTable所在的行和列。 
      而DataGrid中顯示的數據可能經過DataView的DataView.RowFilter屬性、DataView.RowStateFilter屬性的過濾,還可能經過DataGrid本身根據各個列的正向和反向排序,所以DataGrid的CurrentRowIndex屬性所指示的行索引跟其對應的DataTable的行索引有很大的機會是不一樣的,不能夠根據DataGrid的CurrentRowIndex去獲取其對應的DataTable的行。 
      這時BindingManagerBase又將發揮作用了,我們可以先建立一個對應此DataGrid綁定的數據源的BindingManagerBase,這樣這個BindingManagerBase就可以管理這個數據源。 
      //設置DataGrid的數據源 
      dataGrid1.DataSource = myDataSet; 
      dataGrid1.DataMember = "customers"; 
      //建立同DataGrid同樣數據源的BindingManagerBase 
      BindingManagerBase myBindingManagerBaseParent = 
      this.BindingContext[myDataSet,"customers"];  
      一旦建立了這個BindingManagerBase,就可以通過BindingManagerBase的當前行的屬性來獲取當前數據源的記錄: 
      //BindingManagerBase的Current返回數據源的對象,對于綁定到DataView的數據源,需要將此對象顯式
      //的轉換為 DataRowView類型
      DataRowView myDataRowView =(DataRowView) myBindingManagerBaseParent.Current 
      這樣,我們就可以從當前的Cell得到此Cell所在的DataRowView,DataRowView又可以通過DataRowView.Row屬性及其方便的得到DataRow。 
      如果還要進一步,想要得到此Cell所對應的DataTable的具體單元,就是不光要得到DataRow,還要知道這個Cell所對應的列。 
      這又分兩種情況: 
      一是DataGrid未使用TableStyles來設置DataGrid要顯示的列和格式,數據源DataView的所有列都將按照DataView本身的順序顯示出來,這樣可以直接取得對應的列索引: 
      //獲取當前DataGrid單元的列索引,這個索引跟DataTable的索引是一樣的 
      Int ColumnNumber = DataGrid.CurrentCell.ColumnNumber; 
      另一種情況是DataGrid使用了TableStyles來設置DataGrid要顯示的列和格式,這樣DataGrid單元的列索引跟DataTable的索引就可能是不一樣的了,這就要用DataGrid的TableStyles了:
      Int ColumnNumberDataGrid = DataGrid.CurrentCell.ColumnNumber; 
      //獲取當前DataGrid單元的列索引 
      Int ColumnNumberDataTable = 
      DataGrid.TableStyles[0].GridColumnStyles[ColumnNumberDataGrid].MappingName 

      分享:String.Empty、NULL、“”的不同之處
      在asp.net(c#)中 String.Empty、NULL、 3個語法 經常使用,作用是判斷字符串是否為空。 本文就它們彼此的不同之處做一粗略說明。 string.Empty就相當于 一般用于字符串的初始化 比如: stringa; Console.WriteLine(a);//這里會報錯,因為沒有初始化a 而下

      共6頁上一頁123456下一頁
      來源:模板無憂//所屬分類:.Net教程/更新時間:2010-05-21
      相關.Net教程