none
如何使用陣列撈出SQL所查詢的資料 RRS feed

  • 問題

  • 不曉得是否有哪種方法

    是透過 去抓取某個欄位的值直接放入所定義的變數內,再直接做回傳的動作

    由於現在是希望能夠直接透過查詢的資料數目,來定義這個陣列的大小,再將每個陣列放入對應的資料

    不曉得有哪些方法可以提供小弟做使用,麻煩高手了

    EX:

    select * from MainMenu 

    會得出上圖

    之前的做法是做三個變數用來存放這三個值

    然後再透過COMBOBOX去抓這三個變數的值帶入

    可是現在是希望資料表可以做新增的動作COMBOBOX也可以同步更新到不只三筆的資料

    所以會需要到定義陣列依照得到的資料量來定義陣列的大小,以及相對應的內容

    如有不足的地方會在補上麻煩論壇的各位了


    2013年7月30日 上午 05:24

解答

  • 資料讀到資料表後

    用一個For迴圈把資料一一取出來加入到ComboBox裡面就可以了呀

    其實DataTable就是一個二維陣列,你從SQL撈的資料多大資料表就有多大

    要知道資料數量可以用Rows.Count

    Dim Tb1 As New DataTable
    
    ' 撈資料到Tb1
    
    Tb1.Rows.Count ' 取得資料總數量

    ' 將資料加入ComboBox
    
    For i = 0 To Tb1.Rows.Count - 1
    
        ComboBox1.Items.Add(Tb1.Rows(i)("欄位名稱"))
    
    Next



    • 已編輯 GISK 2013年7月30日 上午 05:53 修改錯誤
    • 已標示為解答 sky3102 2013年7月30日 上午 06:15
    2013年7月30日 上午 05:52

所有回覆

  • 怎麼不考慮DataTable而要用陣列?

    DataTable

    • 已編輯 GISK 2013年7月30日 上午 05:33 補入DataTable的MSDN連結
    2013年7月30日 上午 05:29
  • 不好意思 剛剛去看了一下DataTable 

    似乎DataTable的做法,是將兩筆資料調出來在放入新的資料表內

    可是我的做法是需要對應欄位的資料再放入combobox內不曉得是否DataTable

    也能提供到這樣的做法,還請您不吝指導 謝謝您

    2013年7月30日 上午 05:43
  • 資料讀到資料表後

    用一個For迴圈把資料一一取出來加入到ComboBox裡面就可以了呀

    其實DataTable就是一個二維陣列,你從SQL撈的資料多大資料表就有多大

    要知道資料數量可以用Rows.Count

    Dim Tb1 As New DataTable
    
    ' 撈資料到Tb1
    
    Tb1.Rows.Count ' 取得資料總數量

    ' 將資料加入ComboBox
    
    For i = 0 To Tb1.Rows.Count - 1
    
        ComboBox1.Items.Add(Tb1.Rows(i)("欄位名稱"))
    
    Next



    • 已編輯 GISK 2013年7月30日 上午 05:53 修改錯誤
    • 已標示為解答 sky3102 2013年7月30日 上午 06:15
    2013年7月30日 上午 05:52
  • 謝謝您的指導 ,還沒做出來~

    不過大致上已經瞭解了

    謝謝您~

    2013年7月30日 上午 06:15
  • 謝謝您以解決
    2013年7月31日 上午 07:34
  • 既然都撈成 DataTable 了, 用繫結的方式會比用迴圈硬做上去來的漂亮吧 ?

    ComboBox.DataSource 屬性

    在 Windows Forms 的專案中, 還可以用

    BindingSource.DataSoure = DataTable 或集合型別資料

    ComboBox.DataSource  = BindingSource

    這樣還可以做同步化管理, 類似以下這篇文章的用法, 只不過是把 ComboBox 換成 DataGridView 而已

    上一筆、下一筆、第一筆、最末筆《BindingSource的應用 (1)》


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2013年7月31日 下午 04:58
    版主