2017-06-19 30 views
0

可能是一個不好的標題,但作爲一個非英語的人並非一切都很簡單。可視化基本datagridview結果顯示的結果數量不是文字

我的問題是這樣的:從MySQL數據庫(沒問題)

  • 在我DataGridView中添加一個組合框(沒問題)
  • 插入結果到該組合框

    1. 獲取數據(問題)

    會發生什麼情況是組合框向我顯示結果的數量,它顯示我是單擊而不是MySQL單元的值。

    我的代碼如下所示:

    '//Henter drivere fra Printer Installer Database //' 
         mysqlconnpi.Open() 
         query = "Select model_name from printer_installer.ppp_drivers" 
         data = New DataTable 
         dataAdap = New Devart.Data.MySql.MySqlDataAdapter(query, mysqlconnpi) 
         Dim cmb As New DataGridViewComboBoxColumn() 
         cmb.HeaderText = "Select Data" 
         cmb.Name = "cmb" 
         cmb.MaxDropDownItems = 100 
         cmb.Items.Add(dataAdap.Fill(data)) 
         DataGridView1.Columns.Add(cmb) 
    

    結果是這樣的:

    enter image description here

    什麼是錯我的代碼?

    此外,我發現組合框只能處理100個項目,有沒有辦法讓我獲得更多?我目前在我想要列出的數據庫中有212個驅動程序。

    編輯:

    我testet這一行補充: DataGridView1.DataSource =數據 的代碼只是爲了檢查是否「數據」,甚至有項目。 結果是這樣的: Not allowed to insert embedded, image is here.

    的代碼是現在:

      '//Henter drivere fra Printer Installer Database //' 
         mysqlconnpi.Open() 
         query = "Select model_name from printer_installer.ppp_drivers" 
         data = New DataTable 
         dataAdap = New Devart.Data.MySql.MySqlDataAdapter(query, mysqlconnpi) 
         Dim cmb As New DataGridViewComboBoxColumn() 
         cmb.HeaderText = "driver" 
         cmb.Name = "cmb" 
         cmb.MaxDropDownItems = 100 
         cmb.Items.Add(dataAdap.Fill(data)) 
         DataGridView1.Columns.Add(cmb) 
         DataGridView1.DataSource = data 
         'DataGridView1.DataSource = dataAdap.Fill(data) 
         '-------------------------------------------------' 
    
  • 回答

    0

    在DataGridView可能會尋找在字符串長度爲字符串的屬性,所以你可能要發送的查詢結果包裝你的字符串的結果。你可以使用linq代替你的sql查詢。

    從printer_installer.ppp_drivers模型中選擇新的與{重點。名稱= model.model_name}

    +0

    所以我應該做的「查詢」看起來是這樣:查詢=「選擇MODEL_NAME從printer_installer.ppp_drivers模型用{Key.name = model.model_name}「選擇新的?如果我在這裏錯了,我還沒有編寫更多的幾天,所以糾正我。 –

    +0

    你檢查了LINQ,或者如果你想堅持你的代碼,那麼我認爲你可以用一個屬性來創建一個類來保存你的字符串,並從你的sql查詢中創建這個類的列表,並將該列表傳遞給datagridview –