none
有關重覆性資料和關聯性資料庫的問題 RRS feed

  • 問題

  • 請問各大大..............有關於Distinct和關聯性資料庫的問題!!

    之前我有問過如何在一個Form之建立兩個有關聯性的Table

    而也得到解答了,不過,我現在的問題是將重覆性的資料,只顯示一筆呢??

    雖然找了一些文章,不過,我怎麼測試都不能用出我要的結果.........  

     

    我現在已經從資料來源中加入一個新的資料,而這個資料裡面有四個欄位標題為:部門代號/部門名稱/員工代號/姓名

    而在Form1裡面,用精靈將資料抓同一個資料來源(Depman)到Form1的畫面裡面,

    而在左邊只設顯示為部門代號/部門名稱

    而在右邊只設顯示為員工代號/ 姓名

    例如下面所示:

     

    部門代號|部門名稱                                        員工代號|姓名

    1     /     行政組                                            1234     /王力宏

    1     /     行政組                                            1244    /張惠妹

    4     /     工程組                                            5323    /陶喆

    3    /      儀電組                                            4191    /林俊傑

    2    /      會計組                                            3154    /陶晶瑩

    4     /     工程組                                            3524    /杜成義

     

     

    因為我要的畫面是為兩個DataGridView,而我只要點到左邊的部門代號時,右邊的DataGridView裡面的畫面會跟隨著我點到的部門代號而有所變動。

    但在這之前,我希望左邊的DataGridView裡面的畫面的部門代號,是已經有經過重覆性調整的了。

    例如:如下所示:

     

    部門代號/部門名稱                                                 

    1        / 行政組                                                      

    2        /會計組

    3        /儀電組

    4        /工程組

     

    而點到部門代號1的時候,右邊的View的畫面出現會是     

    員工代號|姓名

    1234     /王力宏

    1244    /張惠妹

     

    我知道如果只是單純要將部門代號取重覆性的資料,可以寫為:

    Select  Distinct   C_Dept.DepNo  From  C_Dept

    但是,因為我是將資料分割兩邊,所以寫Distinct沒辦法將只篩選到我部門代號和部門名稱,

    也會將員工代號/姓名,重覆性的兩筆同時列出來,

    請問要如何先在左邊能讓它篩選重覆性的資料後,又能讓右邊的資料也能因為左邊變動而有所變動呢??

    如果覺的我的作法不好,還是有更好的作法,也麻煩請供小妹參考使用..........謝謝!!!

     

    PS:因為要讓商邊的資料隨著左邊點到的部門代號而有所變動,所以一開始才將兩個DataGridView都抓同一個資料來源

    這樣,才會讓游標點到左邊的部門代號,而右邊的員工代號也會跟著動(關聯性資料)

     

     

     

    • 已移動 璉璉 2010年3月6日 上午 04:04 (從:Visual Studio一般討論區(General))
    2007年12月3日 上午 06:07

解答

所有回覆

  • Hi Min,

     

    提供您一個參考方法。請利用 BindSource.Fillter 動態選擇顯示 Data Source 的資料,如以下的語法:

     

            ' Create a BindingSource and set its DataSource property to  the DataView.
            Dim source1 As New BindingSource()
           

              source1.DataSource = Me.AdventureWorksDataSet.vEmployee

     

    ' Set the data source for the DataGridView.
    DataGridView1.DataSource = source1
    source1.Filter = "EmployeeID = '5' or EmployeeID = '6'"

     

    請參考:

    BindingSource.Filter Property
    http://msdn2.microsoft.com/en-us/library/system.windows.forms.bindingsource.filter.aspx

     

     

    Ray Yen

    微軟技術服務處

    2007年12月3日 上午 07:39
  • Hi  Ray Yen

    先謝謝你的指導和附上的參考........

    但我還是不能很理解這個用法,能再多加說明嗎??

     

    2007年12月4日 上午 03:17
  • 個人建議同一個資料來源(Depman)這個,若是沒有特殊條件,可以建成View...或是,其實它只是一個單純的表格,那就不用管它,至於主從表格的操作,就使用兩個BindSource元件的兩個DataGridView來處理即可,參考網址如下:加油!!

    http://msdn2.microsoft.com/zh-tw/library/c12c1kx4(VS.80).aspx

    • 已標示為解答 璉璉 2010年3月6日 上午 04:04
    2007年12月4日 上午 06:42