Hallo Communitiy
Ich fülle über ein nicht an eine Datenbank gebundene Abfrage ein Datagrid mit Daten. In manchen Spalten habe ich Zahlwerte wie z.B. 3,4,5 als mögliche Werte. Jeder dieser Werte steht für z.B. für einen Paketdienst (3=DHL, 4=GLS usw).
Kann ich eine Spalte so verändern, das ich dort ein Combobox-Element zur Auswahl habe, das automatisch beim Befüllen des Grids auf den übergebenen Wert springt? Ich habe nur etwas gefunden, wie ich eine weitere Spalte mit einer Combobox hinten anhänge, aber nicht, wie ich eine vorhandene Spalte entsprechend ändern kann.
Ich fülle über ein nicht an eine Datenbank gebundene Abfrage ein Datagrid mit Daten. In manchen Spalten habe ich Zahlwerte wie z.B. 3,4,5 als mögliche Werte. Jeder dieser Werte steht für z.B. für einen Paketdienst (3=DHL, 4=GLS usw).
Kann ich eine Spalte so verändern, das ich dort ein Combobox-Element zur Auswahl habe, das automatisch beim Befüllen des Grids auf den übergebenen Wert springt? Ich habe nur etwas gefunden, wie ich eine weitere Spalte mit einer Combobox hinten anhänge, aber nicht, wie ich eine vorhandene Spalte entsprechend ändern kann.
VB.NET-Quellcode
- Dim sql As String
- Dim da As MySqlDataAdapter ' Macht die Anpassung (Adaptierung) zwischen Datenbank und DataTable
- Dim dt As New DataTable ' DataTable enthält die via DataAdapter angepassten Daten der Datenbank
- Dim ds As New DataSet ' DataSet faßt eine oder mehrere DataTable zu einem Set (Gruppe) zusammen
- Dim con As DbConnection = New MySqlConnection("server=192.168.0.3;uid=root;pwd=;database=Datenbank;Convert Zero Datetime=True")
- Dim cmd As New MySqlCommand
- sql = "Select Rec_id, Quelle, Kun_Name1, VRENUM, RDatum, Liefart, Zahlart, NSumme, MSumme, BSumme, Trackingcode, Stadium from Journal where Kun_Num = " & Me.DataGridView1.Rows(Me.DataGridView1.CurrentRow.Index).Cells(1).Value & " and Quelle in (3,4)"
- Try
- Cursor.Current = Cursors.WaitCursor
- da = New MySqlDataAdapter(sql, con)
- dt.TableName = "bestellungen"
- da.Fill(ds, dt.TableName)
- DataGridView2.DataSource = ds.Tables(dt.TableName)
- ds.Dispose()
- dt.Dispose()
- da.Dispose()
- DataGridView2.Columns(0).Width = 0 'Rec_ID
- DataGridView2.AutoResizeColumn(1)
- DataGridView2.AutoResizeColumn(2)
- DataGridView2.AutoResizeColumn(3)
- 'Hier wird die Combobox erstellt
- Dim cmb As New DataGridViewComboBoxColumn()
- cmb.HeaderText = "Select Data"
- cmb.Name = "cmb"
- cmb.MaxDropDownItems = 4
- cmb.Items.Add("True")
- cmb.Items.Add("False")
- DataGridView1.Columns.Add(cmb) 'Hier wird die Combobox hinzugefügt, aber leider am Ende
- DataGridView2.Columns(2).CellType = cmb 'Das hier geht leider nicht, da die CellType-Eigenschaft ReadOnly ist. Das wäre mein Ansatz gewesen.
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- Cursor.Current = Cursors.Default
- con.Dispose()
- cmd.Dispose()