1. 程式人生 > >DataGridView控制元件---繫結資料方法

DataGridView控制元件---繫結資料方法

    DataGridView控制元件是在windows應用程中顯示資料最好的方式,它只需要幾行簡短的程式碼就可以把資料顯示給使用者,同時又支援增、刪、改操作。今天將自己總結的增加資料的方法總結分享給大家

   關於DataGridView的一些屬性介紹大家可以參照百度百科,我在這裡主要寫如何用兩種方法去實現繫結資料

1.非繫結模式

所謂的非繫結模式就是dataGridView控制元件顯示的資料不是來自於繫結的資料來源,而是可以通過程式碼手動將資料填充到DataGridView控制元件中,這樣就為DataGridView控制元件增加了很大的靈活性

在此我們先來了解一下DataGridView

控制元件有多種型別的列,而這些型別都是間接的或直接的繼承了DataGridViewColumns()  ,下面是我們能夠長用的幾種型別

說明

DataGridViewTextBoxColumn

與基於文字的值一起使用,在繫結到數字和字串型別的值時自動生成

DataGridViewCheckBoxColumn

booleancheckState值一起使用,在繫結到這些型別的值時自動生成

DataGridViewImageColumn

用於顯示影象,在繫結到位元組陣列、Image物件或Icon物件自動生成

DataGridViewButtonColumn

用於在單元格中顯示按鈕,不會在繫結時自動生成,通常用來做未繫結列

DataGridViewComboBoxColumn

使用者在單元格中顯示下拉列表,不會在繫結時自動生成,通常收到進行資料繫結

DataGridViewLinkColumn

用於在單元格中顯示超連結,不會在繫結時自動生成,通常需要進行手動繫結資料

瞭解了這些看下面的例子

        '建立一個顯示textBox的列()
        Dim col1 As DataGridViewTextBoxColumn =New DataGridViewTextBoxColumn()
        col1.Name = "Name"
       col1.HeaderText = "姓名" '設定標題中顯示的文字
      
       Dim col3 As DataGridViewTextBoxColumn = NewDataGridViewTextBoxColumn()
        col3.Name = "sex"
       col3.HeaderText = "性別"
      
       '將新建的列新增到控制元件中
        DataGridView1.Columns.Add(col1)
        DataGridView1.Columns.Add(col3)
 
        '新增行
        '建立新行 
        Dim row As DataGridViewRow = NewDataGridViewRow()
        row.CreateCells(DataGridView1)
        '設定單元格的值
       row.Cells(0).Value = "張三"
       row.Cells(1).Value = "男"
        DataGridView1.Rows.Add(row)
        '新增第二行
      Dim row1 As String() = {"李四", "男"}
        DataGridView1.Rows.Add(row1)


另外對於新增標題列也可以不用程式碼新增,而是通過手動新增列操作步驟如下

1,點選DataGridView控制元件就可以看到一個小三角,點選小三角彈出選單 選擇編輯列如下所示

編輯列:


同時也可以修改列的屬性


2 繫結模式

將存在的資料繫結到控制元件上,我是將資料庫表中的資料繫結到控制元件上,我將使用者表中的使用者名稱,密碼,開戶人資訊繫結到控制元件上,具體步驟如下我在在窗體的Load事件下來完成這些步驟的

 參考程式碼: 
 
   '連線資料庫
        Dim cnStr As String = "PersistSecurity Info=False;User ID=sa;Initial Catalog=studentSystem;DataSource=192.168.24.74;pwd=123456"
        Dim cn As SqlConnection = NewSqlConnection(cnStr)
        cn.Open() '開啟資料庫
        Dim sql AsString = "select U_ID as 使用者名稱 ,U_passwordas 密碼,U_head as 開戶人 from T_user"
        Dim cmd As SqlCommand = NewSqlCommand(sql, cn)
 
        Dim da As SqlDataAdapter = NewSqlDataAdapter()
        da.SelectCommand = cmd
 
        Dim ds As DataSet = New DataSet()
        da.Fill(ds,"T_user") '填充資料集
        '繫結資料集
        DataGridView1.DataSource = ds
        DataGridView1.DataMember ="T_user"


執行效果圖


  此中執行效果和非繫結模式下顯示的相同,但方法卻截然不同,而我在新增標題列時是利用的SQL語句實現的

Dim sql As String ="select U_ID as 使用者名稱 ,U_password as 密碼,U_head as 開戶人 from T_user" 對於這一部分,我們也可以通過不同的程式碼來實現它具體程式碼和上述區別在於  SQL語句處Dim sql As String = "select U_ID ,U_password,U_head  from T_user"這樣寫,在繫結好了資料集後在設定標題列程式碼如下:

 '設定標題第0列
       DataGridView1.Columns(0).HeaderText = "使用者名稱"
        '凍結標題  也就是標題不會隨著資料的移動而消失
        DataGridView1.Columns(0).Frozen = True
        '新增第一列標題
       DataGridView1.Columns(1).HeaderText = "姓名"
        DataGridView1.Columns(1).Frozen = True
        '設定第二列標題
       DataGridView1.Columns(2).HeaderText = "開戶人"
        DataGridView1.Columns(2).Frozen = True


這樣編寫和我們在SQL語句中就定義標題列的效果是一樣的

以上就是我在利用DataGridView控制元件繫結資料所嘗試的兩種方法!關於DataGridView控制元件的其他使用方法會在下面的部落格中發表,歡迎指正