Fragensteller
DataGridView Zeilen einfügen ?

Allgemeine Diskussion
-
Hallo,
folgendes Problem:
ich definiere 4 Spalten in ein dgv mit bestimmten Eigenschaften per SourceCode und versuche später diese zu bearbeiten.
Wenn ich eine Abfrage mit diesen 4 Spalten über MySql schicke und so dgv fülle, sind dann die definierten 4Spalten+4Spalten aus der Abfrage gefüllt (mit 8 Spalten) dgv.DataSource = DataTable(MySql-Abfrage);
Frage ?:
wie kann ich dann mit dgv.DataSource = DataTable(MySql-Abfrage); dgv füllen und die 4 def. Eigenschaften behalten ohne 8 Spalten zu bekommen.
MFG
- Bearbeitet Marcel RomaModerator Freitag, 7. Juni 2013 13:01 Titel
- Typ geändert Ionut DumaModerator Mittwoch, 19. Juni 2013 14:11 Keine Rückmeldung des Fragenstellender
Alle Antworten
-
Hallo, setze die AutoGenerateColumns-Eigenschaft auf False:
dataGridView1.AutoGenerateColumns = false;
Diese Eigenschaft gibt es bei mir seltsamer Weise nicht im Eigenschaftenfenster, sondern nur im Codebehind.<Code:13/> - Koopakiller [kuːpakɪllɐ]
Webseite | Code Beispiele | Facebook | Snippets
Wenn die Frage beantwortet ist, dann markiert die hilfreichsten Beiträge als Antwort und bewertet die Beiträge. Danke.
Einen Konverter zwischen C# und VB.NET Code gibt es hier. -
Hi,kannst Du das etwas genauer spezifizieren?Fehlen die Spalten?Fehlen die Kopfbeschriftungen in den Spalten (wenn diese vorhanden sind)?Fehlen die Zeilen?Fehlen die Zellinhalte (wenn die Zeilen vorhanden sind)?Wie sieht die Deklaration einer Spalte aus?Von welchem Typ ist die gebundene Datenquelle?Welche Eigenschaften haben die Datenobjekte der gebundenen Datenquelle?--
Peter Fleischer -
hallo, so sieht mein Code aus:
dgv.AutoGenerateColumns = false;
dgv.ColumnCount = 1;
dgv.Columns[0].Name = "SysNr";
dgv.ColumnCount = 2;
dgv.Columns[1].Name = "Name";
dgv.ColumnCount = 3;
dgv.Columns[2].Name = "Kommentar";
dgv.ColumnCount = 4;
dgv.Columns[3].Name = "HK_ID";dgv.DataSource = DataTable("SELECT SysNr, Name, Kommentar, HK_ID From tbl") // OK
Typen: varchar(20) SysNr, varchar(10) Name, varchar(40) Kommentar, int(10) HK_ID.
MFG
-
Hallo ati.sah,
das DataGridView hat drei mögliche Modi: ungebunden, an Daten gebunden und virtuell. Die Modi können nicht miteinander kombiniert werden.
Das Setzen von ColumnCount z.B. ist nur im ungebundenen Modus möglich, ein Modus in dem Du die Zelleninhalte quasi manuell setzt.
Das Setzen der Datenquelle ist hingegen im gebundenen Modus möglich.
Allerdings dürfte dein obiger Code so nicht kompilierbar sein, denn da fehlt ein new vor DataTable.
Und auch mit dem new bist Du nicht viel weiter, denn der Konstruktor von DataTable nimmt zwar ein String-Argument an, aber nur um der Tabelle einen Namen zu geben.
Ich denke deshalb, es ist besser, wenn Du dich etwas in die Materie einliest, bevor Du mit dem Code loslegst.
Hier ein möglicher Einstiegspunkt:
Anzeigen von Daten im DataGridView-Steuerelement in Windows Forms
Gruß
Marcel
-
Hallo Herr Marcel,
wie ist dann "dgv.AutoGenerateColumns = false;" zu verstehen, wenn ich manuell die Spalten definiere und dann an die gebundene Daten zuweise. Wenn ich Spaltennamen und dessen Typen vorher weiß und entsperechend deklariere.
MFG
- Bearbeitet ati.sah Freitag, 7. Juni 2013 13:21
-
Hi,das reicht an Info nicht. Es fehlen Antworten auf meine Fragen. Einen guten Programmierer zeichnen vor allem analytische Herangehensweisen aus, die schrittweise eindeutige Antworten als Basis für eine Fehlersuche und –analyse geben.1. Fehlen die Spalten?2. Fehlen die Kopfbeschriftungen in den Spalten (wenn diese vorhanden sind)?3. Fehlen die Zeilen?4. Fehlen die Zellinhalte (wenn die Zeilen vorhanden sind)?5. Wie sieht die Deklaration einer Spalte aus?6. Von welchem Typ ist die gebundene Datenquelle?7. Welche Eigenschaften haben die Datenobjekte der gebundenen Datenquelle?Zu 5. ist insbesondere Interessant, was Du bei DataPropertyName angegeben hast.--
Peter Fleischer -
Hallo,
1. Typen: varchar(20) SysNr, varchar(10) Name, varchar(40) Kommentar, int(10) HK_ID
2. SysNr, Name, Kommentar, HK_ID
3. ?
4. z.B: SysNr=1, Name='Text', Kommentar='Text', HK_ID=5
5. s.o
6. Typen: varchar(20) SysNr, varchar(10) Name, varchar(40) Kommentar, int(10) HK_ID
7. ?
ich hoffe dies hilft.
MFG
-
Hallo ati.sah,
dgv.AutoGenerateColumns hat überhaupt keinen Effekt im ungebundenen Modus. Da gibt's keine Automatismen. Wenn Du willst, dass das DataGridView 5 Spalten hat, dann setzt Du einfach ColumnsCount = 5. Und wenn Du den Namen einer Spalte bestimmen willst, setzt Du Columns[0].Name = "Erste Spalte". Und eine Zeile fügst Du dann z.B. über Rows.Add(new string[] {"1", "2", "3", "4", "5"}) ein: Alles Schritt für Schritt und alles "manuell".
Wenn Du das DataGridView hingegen automatisch an eine Datenquelle binden möchtest (gebundener Modus), dann mußt Du einem bestimmten Vorgehen folgen, das hier beschrieben wird:
Gewusst wie: Binden von Daten an das DataGridView-Steuerelement in Windows Forms
Hast Du denn überhaupt die von mir verlinkte Dokumentation schon durch? - Du kannst freilich alles natürlich im Selbstexperiment erlernen, aber das wird dann auch ein Weilchen dauern...
Gruß
Marcel
-
***************************************************************************************************************
Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
***************************************************************************************************************