none
在Form中動態的增加及減少pictureBox.....結合資料庫........ RRS feed

  • 問題

  •  

    各位前輩  您好:
         小弟在這想要請教一個問題,
         在這我就好好的把我的問題給描敘一遍,
         首先,我先利用web service 讀取一個
         型別為DataSet的資料集,裡面有一些資訊,
         每一個資訊代表一個獨立個體,用pictureBox new出來,
         所以每一個pictureBox都代表著一個獨立的物件,
         我把這些pictureBox放在一個容器裡顯示,可以另一個pictureBox,
         也可以是一個form,我在new pictureBox的時後,
         就順便加入一個ArrayList,

         我有設一個Timer,這樣可以讓我動態的改變,
         也就是說只要資料庫一變《有增加物件的話》,
         那pictureBox也會動態增加,當然,如果資料庫那《減少物件》,
         我的pictureBox也會動態的減少。

         所以我目前遇到的困難是,每一次經過web service 載進新的資料,
         我該怎麼跟舊資料比對有新增或減少,然後適時的將pictureBox增加或減少,
       
         小弟我嘗試了許久,始終不得其果,我是另外又new 兩個新的ArrayList,
         最先new出來ArrayList去判斷裡頭的值跟DataSet是否符合,如果不符就代表
         資料有新增或減少,用這兩個新增的ArrayList來分裝存在的及不存在的,
         雖然已經做出可以新增,在減少的地方,還是發現有很多問題存在,
         也許小弟的物件觀念太差,所以這個方式做不出來。

         請前輩替小弟解惑.......
     
         小第使用 VS 2005 C# 開發.......

    2007年9月14日 上午 01:12

所有回覆

  • 如果將 DataSet 中所有的圖片放在 ImageList ....

    循序讀出 ImageList 的 Image 然後在 Panel 中動態產生 PictureBox 再放圖片進去

     

    下次更新 DataSet 後...也是依樣把圖片放入 ImageList

    然後清除 Panel 中所有 PictureBox 控制項...

    循序讀出 ImageList 的 Image 然後在 Panel 中動態產生 PictureBox 再放圖片進去

     

    以上方法你要不要試試看...Stick out tongue

    2007年9月14日 上午 01:28
  • 既然你用DataSet,就可以多包含一個DataTable(ex: dtCurrentList),記錄目前這個DataSet資料的圖片Id
    在WebService的Web Method多一個參數,就是Device端目前的dtCurrentList,例如參數名稱為dtDeviceList
    由Server上取出新資料時,建出另一個dtCurrentList
    將新的dtCurrentList全部註記為「新增」,然後逐筆跟dtDeviceList比對,有相同者把dtDeviceList跟dtCurrentList都註記為「相同」,之後dtDeviceList沒註記的就註記為「刪除」,並把刪除的這幾筆加到dtCurrentList

    之後你在Device端取得dtCurrentList的時候,就知道哪些是新增,哪些是刪除了
    2007年9月27日 下午 06:44