Laden...

Datareader in Datagrid schreiben

Erstellt von Bender1988 vor einem Jahr Letzter Beitrag vor einem Jahr 813 Views
B
Bender1988 Themenstarter:in
6 Beiträge seit 2022
vor einem Jahr
Datareader in Datagrid schreiben

Hallo Zusammen ich bräuchte eure Hilfe und zwar möchte ich ein datagridview mit Daten befüllen aus 2 SQL Datenbanken

Das Datagrid sieht so aus

Column1=Ø, Column2=teilenummer, Column3= Bezeichnung

nun sollen die daten aus dem ersten reader in Column2 geschrieben werden also er soll auch pro gefundenem teil eine neue Zeile erstellen.

anschließen soll mit der 2. Verbindung der Ø und die Bezeichnung zzu der passenden teilenummer geschrieben werden.

Kann mir da jemand vielleicht einen Code basteln ?

Die 2 tabellen liegen in der gleichen Datenbank.

Vielen Dank im Vorraus ich hoffe ihr könnt mir weiter helfen.

16.840 Beiträge seit 2008
vor einem Jahr

Kann mir da jemand vielleicht einen Code basteln ?

Das Forum ist kein kostenloser Quellcode Generator.
[Hinweis] Wie poste ich richtig?

B
Bender1988 Themenstarter:in
6 Beiträge seit 2022
vor einem Jahr

Oki das war falsch ausgedrückt.

Sorry. Ich bin neu was Programmieren angeht und komme nicht weiter der erste Schritt scheitert schon
ich bekomme die wertw nur in den ersten column möchte aber das die Werte in den 2. geschrieben werden

dafür sieht der Code so aus


databaseConnection.Open();
            SqlCommand command;
            SqlDataReader dataReader;
            String query;
            query = "select Teil from LAGER where Lag = 'G';";
            command = new SqlCommand(query, databaseConnection);
            dataReader = command.ExecuteReader();

            while (dataReader.Read())
            {
                DGVPartList.Rows.Add(dataReader.GetValue(0));
            }
            command.Dispose();
            databaseConnection.Close();

16.840 Beiträge seit 2008
vor einem Jahr

Dein Konzept würde man so eigentlich nicht machen. Was man normal machen würde:

  • Alle Daten über SQL abfragen, wenn möglich mit einem einzigen Query
  • Resultate in Modelle schreiben
  • Modelldaten in das DataGrid schreiben

Mehrere Verbindungen und pro Item einen weiteren Query endet in einem elends langsamen System.
Würde im Endeffekt genau das passieren, was ein anderer Hilfesuchender hier als Problem hatte: Performance verbessern

B
Bender1988 Themenstarter:in
6 Beiträge seit 2022
vor einem Jahr

ich habe jetzt dieses Ergebniss

databaseConnection.Open();
SqlCommand command;
SqlDataReader dataReader;
String query;
query = "select LAGER.Teil, TEILE.Bez From TEILE INNER JOIN LAGER ON TEILE.Teil=LAGER.Teil where LAGER.Lag = 'G' and TEILE.Gruppe = 'DR' and TEILE.Stat = '';";
command = new SqlCommand(query, databaseConnection);
dataReader = command.ExecuteReader();
if (dataReader.Read())
//while (dataReader.Read())
{
DGVPartList.Rows.Add(dataReader.GetValue(0), dataReader.GetValue(1));
}
command.Dispose();
databaseConnection.Close();
}

Jetzt fehlt mir nur noch dass der datareader die Sachen in Column2 und 3eintratgen soll kann mir da jemand behilflich sein

4.941 Beiträge seit 2008
vor einem Jahr

Bitte formatiere deinen Code.

Mit


DGVPartList.Rows.Add(dataReader.GetValue(0), dataReader.GetValue(1));

fügst du ja die beiden Werte auch in die 1. und 2. Spalte ein. Füge noch einen Nullwert oder Leerstring als 1. Parameter hinzu.

PS: Hat dir eigentlich mein Beitrag in deinem anderen Thema bzgl. "Printer" weitergeholfen? Feedback wäre angebracht.

B
Bender1988 Themenstarter:in
6 Beiträge seit 2022
vor einem Jahr

Dass mit dem Drucken hat funktioniert besten Dank dafür.

Das jetzige hat auch funktioniert.

allerdings muss ich noch ergänzen nun möchte ich aus dem Column 2 gewisse werte in Column 0 eintragen

zum Beispiel steht in Column2 = (RU)=2,0mm D9-1 DIN 177

ich möchte das nur 2,0 in Column 0 eingetragen wird hast du dafür auch eine Hilfe für mich

4.941 Beiträge seit 2008
vor einem Jahr

Dafür mußt du dann den String parsen, d.h. je nach möglichen Format per String.Substring den Teilstring daraus extrahieren.
Besser wäre es aber, wenn dieser Wert schon direkt in der Datenbank steht.