Wie kann man die Daten eines ListViewelementes in ein DataGrid übertragen ?

Goldman

Mitglied
Wie die Überschrift bereits erraten lässt, benötige ich dringend eine Lösung,

wie ich aus meinem gefüllten ListViewement die Daten in mein leeres DataGrid rein bekomme.

Das ListViewelement heißt bei mir lvData das DataGrid standardmäßig DataGrid1.
 

Saber

Erfahrenes Mitglied
Da weder das DataGrid noch die ListView selbst wirklich Daten enthalten muss man einfach die Datenquelle (Datenbank, DataSet etc.) austauschen, denke ich mal. Probier einfach mal die Datenquelle der ListView an das DataGrid zuzuweisen.
 

Goldman

Mitglied
Leider geht das net so einfach.
Denn ListView und DataGrid haben nicht die gleichen Eigenschaften.

Ich habe folgenden Code, um das ListView zu füllen

MySQLCommand cmd = new MySQLCommand((abfrage+query),conn);
MySQLDataReader reader = cmd.ExecuteReaderEx();

this.lvData.Clear();
while(reader.Read())
{
ListViewItem lvi = new ListViewItem("id:"+
reader.GetString(0)+
", name:"+reader.GetString(1)+
", vorname:"+reader.GetString(2)+
", anrede:"+reader.GetString(3)+
", titel:"+reader.GetString(4)+
", transponder:"+reader.GetString(5)+
", rem:"+reader.GetString(6) +
", DP:"+reader.GetString(7)+
", Telefon:"+reader.GetString(8) +
", DP2:"+reader.GetString(9) +
", PC:"+reader.GetString(10) +
", Raum:"+reader.GetString(11)
);
lvData.Items.Add(lvi);

}

reader.Close();
cmd.Dispose();
 

Saber

Erfahrenes Mitglied
Oh, wie man sich täuschen kann. Nobody is perfect. :)

Ähm, also aus dem Stegreif weiss ich keine Methode, denn ich benutze eigentlich nie eine ListView. Aber vielleicht besteht die Möglichkeit die Daten aus dem ListView in ein DataSet zu befördern, welches Du anschl. als Datenquelle für das DataGrid verwendest.

Wenns ned klappen sollte dann melde Dich nochmals ... bin gerade unter Zeitdruck.
 

Goldman

Mitglied
Vielen Dank für deine HIlfe.
Ich habe mich nun umentschieden und nutze überhaupt kein listview mehr sondern ein DataTable.
Um anderen mit dem gleichen Problem zu helfen, werde ich den nötigen Quellcode hier hinzufügen.
PS: Mein Programm wurde mit Visual C# von MS Visual Studio.NET 2003 geschrieben. Man sollte desweiteren daran denken, im Formular auch ein DataGrid zu erstellen, da ansonsten keine Daten angezeigt werden können.

Quellcode:


//Die Datentabelle, hier werden die Spalten und ihre Namen in der Tabelle festgelegt
DataTable myTable = new DataTable("Person");
myTable.Columns.Add("ID");
myTable.Columns.Add("Name");
myTable.Columns.Add("Vorname");
myTable.Columns.Add("Anrede");
myTable.Columns.Add("titel");

//nach dem festlegen der Tabelle stelle ich eine Verbindung zu meiner MySQL-Datenbank her (mit dem Provider MySQLDriverCS).

/*Hier wird eine vorher festgelegte Abfrage mit einer vorher festgelegten Bedingung(query) verknüpft und eine Verbindung aufgebaut*/

MySQLCommand cmd = new MySQLCommand((abfrage+query),conn);
MySQLDataReader reader = cmd.ExecuteReaderEx();
//reader liest die Datensätze aus
while(reader.Read())
{

myTable.Rows.Add(new String[]{reader.GetString(0),reader.GetString(1),reader.GetString(2),reader.GetString(3),reader.GetString(4)});

DataView myDataView = new DataView(myTable);
dataGrid1.DataSource = myDataView; //Daten ins DataGrid übertragen


}

reader.Close();
cmd.Dispose();

Bei offenen Fragen, schreibt sie einfach hier hinein, ich werde dann versuchen sie so schnell wie möglich zu beantworten.

MfG Goldman