2017-06-19 5 views
0

悪いタイトルかもしれないが、英語以外の言語を話す人はすべてが単純ではない。Visual Basicのデータグリッドビュー結果がテキストではなく

私の問題は以下の通りです:MySQLデータベース(問題なし)

  • 私のDataGridViewにコンボボックスを追加(問題なし)
  • そのコンボボックスに結果を挿入するから

    1. フェッチデータ(問題)

    何が起こるかは、コンボボックスに結果の数が表示され、クリックする可能性が1つで、MySQLセルの値ではないことが表示されます。

    私のコードは次のようになります。

    enter image description 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 = "Select Data" 
         cmb.Name = "cmb" 
         cmb.MaxDropDownItems = 100 
         cmb.Items.Add(dataAdap.Fill(data)) 
         DataGridView1.Columns.Add(cmb) 
    

    結果がこれですか?

    また、コンボボックスでは100個のアイテムしか処理できないことがわかりました。それ以上の方法はありますか?私は現在、リストにしたいデータベースに212のドライバを持っています。

    EDIT:「データ」にも項目があった場合だけチェックするコードに DataGridView1.DataSource =データ :

    私はこの行を追加することtestet。コードは今 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のは、あなたが送信する場合がありますので、クエリの結果文字列のプロパティで文字列の長さを見ているかもしれない 結果がこれですあなたの文字列をラップして結果を返します。 SQLクエリの代わりにlinqを使用することができます。 printer_installer.ppp_driversでのモデルから

    {キー.nameの= model.model_name}

    +0

    は、だから私は、「クエリ」のように見えるようにすべきであるとの新しい選択:クエリを=「printer_installer.ppp_driversでモデルからMODEL_NAMEを選択{Key .name = model.model_name}で新規を選択しますか?私は2,3日以上をコード化していないので、ここで間違っていれば私を修正してください。 –

    +0

    あなたはLINQをチェックアウトするか、コードに固執したい場合は、文字列を保持するプロパティを持つクラスを作成し、SQLクエリからそのクラスのリストを作成し、そのリストをdatagridviewに渡すことができると思います –

    関連する問題