| |
VB.NET - Ein- und UmsteigerDatagridview mit Combobox | | | Autor: isensa | Datum: 02.03.12 19:24 |
| Hallo zusammen
Wie ändere ich eine Spalte im Datagridview zu Combobox?
Ich komme einfach nicht mehr weiter.
Gruss
Sascha | |
Re: Datagridview mit Combobox | | | Autor: isensa | Datum: 03.03.12 10:39 |
| Hallo Manfred X
Die Combobox geht soweit aber die Meldung bekomme ich nicht weg. Ich habe das Prog unter dem Link beigelegt
http://web217.server8.cshost.ch/Prog/Prog.zip . Vielleicht hast du noch eine Lösung.
merci
Gruss
Sascha | |
Re: Datagridview mit Combobox | | | Autor: isensa | Datum: 03.03.12 11:15 |
| Hallo
ist das falsch ? | |
Re: Datagridview mit Combobox | | | Autor: isensa | Datum: 02.03.12 23:54 |
| Hallo
Die Combobox habe ich. Nun bekomme ich noch die Fehlermeldungen: System.ArgumentException
Dim Daten As New DataTable
Dim test As String = "select * from Stempelzeit where User_id=1"
DGV.AutoGenerateColumns = True
Daten = ReadDataTable01(Daten, test)
DGV.DataSource = Daten
Dim CityComboColumn As New DataGridViewComboBoxColumn
CityComboColumn.HeaderText = "info"
CityComboColumn.DataPropertyName = "info"
CityComboColumn.DisplayIndex = 5
DGV.Columns.RemoveAt(4)
DGV.Columns.Add(CityComboColumn)
Dim test1 As String = "test"
For i = 0 To DGV.Rows.Count
test1 = DGV.Rows.Item(i).Cells(4).Value.ToString
If Not CityComboColumn.Items.Contains(test1) Then
CityComboColumn.Items.Add(test1)
End If
Next | |
Re: Datagridview mit Combobox | | | Autor: Manfred X | Datum: 03.03.12 10:59 |
| Hallo!
Kurzer Blick auf den Code ergibt:
Du setzt die Datasource-Eigenschaft des Datagridview auf die Tabelle
"Daten" und greifst in der Schleife zum Füllen der ComboBoxColumn
auf die Tabelle "Abwesenheit" zu. Ich vermute das führt zu einem
Problem. | |
Re: Datagridview mit Combobox | | | Autor: Manfred X | Datum: 03.03.12 11:48 |
| Hallo!
Kommt - wie so oft - auf die Datenlage an.
[I]Die Werte der Dropdownliste (oder die durch die ValueMember-Eigenschaft
angegebenen Werte) müssen die tatsächlichen Zellwerte enthalten, da das
DataGridView-Steuerelement andernfalls eine Ausnahme auslöst.[/I]
(MSDN: DatagridViewComboboxColumn) | |
Re: Datagridview mit Combobox | | | Autor: Manfred X | Datum: 03.03.12 00:30 |
| Hallo!
Wo genau kommt der Fehler?
Die Rows-Schleife darf nur bis Count-1 laufen.
Du mußt in dieser Schleife auf die Datenquelle zugreifen ("Daten").
Ob Dein Zell-Index stimmt (=4), kann ich nicht beurteilen. | |
Re: Datagridview mit Combobox | | | Autor: isensa | Datum: 03.03.12 14:17 |
| Hallo
Wurde ich verschoben?
Wo sind die restlichen Einträge? | |
Re: Datagridview mit Combobox | | | Autor: isensa | Datum: 03.03.12 18:32 |
| Hallo
wie kann ich eine Vorauswahl der Combobox erstellen? | |
Re: Datagridview mit Combobox | | | Autor: isensa | Datum: 05.03.12 19:50 |
| Hallo
Komisch, das müsste doch gehen. Ich möchte nur bei der Auswahl das eins Angezeigt wird. | |
Re: Datagridview mit Combobox | | | Autor: Manfred X | Datum: 06.03.12 06:38 |
| Hallo!
Ich verstehe nicht, was Du in Zusmamenhang mit einer
"DatagridViewComboBoxColumn"-Spalte mit Vorauswahl meinst?
Wenn Du bei neuen Zeilen einen Default-Wert setzen willst,
kannst Du das in der DataColumn-DefaultValue-Eigenschaft
(Datatable.Columns-Auflistung) einrichten. | |
Re: Datagridview mit Combobox | | | Autor: isensa | Datum: 06.03.12 13:02 |
| Hallo
Ich möchte nur ein Default-Wert im DatagridViewComboBoxColumn.
Wobei auch dieser Wert unterschiedlich ist.
Ich finde unter DataTable den Eintrag nicht wie oben beschrieben. | |
Re: Datagridview mit Combobox | | | Autor: isensa | Datum: 06.03.12 18:55 |
| Hallo
Beitrag wurde zuletzt am 06.03.12 um 18:58:40 editiert. | |
Re: Datagridview mit Combobox | | | Autor: isensa | Datum: 06.03.12 18:57 |
| Hallo
Jetzt bin ich einwenig weiter gekommen. Leider sind alle Combobox mit dem Wert Test beschrieben.
Sollte ja nur die mit dem Wert 1 überschreiben.
For i = 0 To DGV.Rows.Count - 2
If DGV.Rows(i).Cells(5).Value.ToString = "1" Then
'Zeile 4
CityComboColumn.DefaultCellStyle.NullValue = "Test"
End If
Next | |
Re: Datagridview mit Combobox | | | Autor: FZelle (Moderator) | Datum: 06.03.12 20:19 |
| Evtl solltest du mal versuchen zu verstehen was du da machst.
Du fragst einen Wert einer Zeile ab, setzt aber dann den Wert für die gesamte Spalte.
Wenn du aufhören würdest die Werte im Grid zu benutzen, und DataBinding benutzt und verstehst ist das alles sehr einfach. | |
Re: Datagridview mit Combobox | | | Autor: isensa | Datum: 06.03.12 22:42 |
| Hallo DaveS
Besten Dank. Jetzt geht's.
Brauchts das DataBinding nicht?
Wo liegt der Unterschied? | |
Re: Datagridview mit Combobox | | | Autor: Manfred X | Datum: 06.03.12 23:56 |
| Hallo!
Du hast im dem Code Datenbindung(en).
Die Datatable ist ans Datagrid gebunden
und die DGV-Combobox ist an eine Liste gebunden.
Aber - wie schon erwähnt - die Combobox
muss mindestens mit den Werten gefüllt werden,
(z.B. hier: aus der Liste) die in der Table-Spalte
drin stehen. | |
Re: Datagridview mit Combobox | | | Autor: DaveS (Moderator) | Datum: 07.03.12 08:02 |
| Also, ich hoffe du schaust dir diese "Lösung" genau an und stellst selbst fest was anders ist, sonst macht es wenig Sinn etwas zu posten. Da war ziemlich viel was verbesserungswürdig war. Leider muss man wieder sagen, dass ohne Grundlagen zu kennen wenig Gutes rauskommt.
Allerdings war es spät (für mich!) und ich habe das ganze relativ flüchtig angeschaut. Du willst vermutlich, dass die Werte aus der "Info"-Spalte der "Abwesenheit"-Tabelle dargestellt werden anstatt der numerischen Werte aus der "Daten"-Tabelle "info"-Spalte. Das passiert im folgenden Code.
Man sollte übrigens besser die DGV-Spalten mit Code anlegen anstatt die auto-generierten anschließend anzupassen. Ist nicht wirklich schwierig (code für eine Spalte hast du ja schon).
Dim Datenbankpfad As String = "Zeiterfassung_2.sqlite"
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
Dim userid As Integer = 2
Dim Daten As New DataTable("Daten")
Dim Abwesenheit As New DataTable("Abwesenheit")
Dim sDaten As String = "select * from Stempelzeit where User_id=?"
Dim sAbwesenheit As String = "select * from Abwesenheit"
DGV.AutoGenerateColumns = True
ReadDataTable01(Daten, sDaten, userid)
ReadDataTable01(Abwesenheit, sAbwesenheit, Nothing)
DGV.DataSource = Daten
Dim InfoComboColumn As New DataGridViewComboBoxColumn()
InfoComboColumn.HeaderText = "info"
InfoComboColumn.DataPropertyName = "info"
InfoComboColumn.DisplayMember = "Info"
InfoComboColumn.ValueMember = "Abwesenheit_id"
InfoComboColumn.DisplayIndex = 5
InfoComboColumn.DataSource = Abwesenheit
DGV.Columns.RemoveAt(5)
DGV.Columns.Add(InfoComboColumn)
End Sub
Public Sub ReadDataTable01(ByVal dt As DataTable, ByVal SelectString As _
String, param As Object)
Dim ConnectionString As String = "Data Source=" & Datenbankpfad & ";"
Try
Dim da As New SQLite.SQLiteDataAdapter(SelectString, _
ConnectionString)
If param IsNot Nothing Then
da.SelectCommand.Parameters.AddWithValue("P1", param)
End If
da.Fill(dt)
Catch ex As Exception
MessageBox.Show(ex.Message, "Beim Öffnen der Datenbank ist ein" & _
"Fehler" & _
"aufgetreten.")
End Try
End Sub ________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist | |
Re: Datagridview mit Combobox | | | Autor: isensa | Datum: 10.03.12 12:58 |
| Hallo
Besten Dank nochmals. Funktioniert super.
Eine Frage habe ich noch:
Wie kann ich den DateTimePicker in die Datagrideview integrieren? | |
Re: Datagridview mit Combobox | | | Autor: isensa | Datum: 10.03.12 16:04 |
| Hallo
super geht.
Wieso wird der Value-Wert jetzt direkt im Datagridview geändert?
row.Cells(6).Value = DateTime.Now
Beitrag wurde zuletzt am 10.03.12 um 16:10:59 editiert. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevWizard für VB5/6
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|