Hallo,
ich habe mit der Dienstbasierten Datenbank von C# eine eine Datenbank erstellt und auch Werte eingefügt. Dann habe ich mit dem DataSet eine Verbindung hergestellt, die zweifelsohne funktioniert, da ich die Zeilen ansprechen kann. Beispielsweise funktioniert t.Columns["Name"]. t.Columns["Name2"] aber nicht. Die Verbindung steht also. In der Datenbank selber snd zwei Datensätze, die ich manuell eingeführt habe. Wenn ich mit dem folgenden Quellcode aber weitere Datensätze einfüge dann werden mir nur die beiden Datensätze ausgegeben, die ich im Quellcode eingefügt habe. In der DB sind sie auch nicht vorhanden.
DataTable t = dataSet.Tables["Kunde"];
t.Rows.Add(1, 1, 1);
t.Rows.Add(3, 6, 4);
foreach (DataRow row in t.Rows)
{
Console.WriteLine(":: ROW ::");
foreach (var item in row.ItemArray)
{
Console.WriteLine("Zeile");
Console.WriteLine(item.ToString());
}
}
Ich komme nicht auf den Fehler und wäre über Hilfe sehr dankbar.
VG
Du fügst 2 Zeilen in das DataSet im Speicher ein, nicht in die Datenbank.
Auf die Datenbank greifst Du überhaupt nicht zu.
Hier ein paar Beispiele wie man Daten einfügt und abruft : https://download.seven-c.de/files/DatenbankenHowTo.htm
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Wenn du nicht musst (z.B. Legacy Applikation), würde ich dir davon abraten DataTable zu nutzen. Die ist relativ alt und hat viel overhead.
Wenn du kein SQL schreiben möchtest, schau dir ORM's wie EntityFrameworkCore an.
Danke für die Antwort.
Aber wenn ich gar nicht auf die DB zugreife, wieso funktioniert dann die Zeile
DataTable t = dataSet.Tables["Kunde"];
und wenn ich Kunde in etwas andere ändere dann nicht mehr. Eine Verbindung zu DB muss doch irgendwie vorhanden sein.
Deinen Link lese ich mir morgen früh in Ruhe durch =)
VG
Die Zeile hat nichts mit einer Datenbank Verbindung zu tun.
Du liest einfach das DataTable aus einem DataSet.
Beide liegen bereits im lokalen Speicher vor und müssen nicht aus der Datenbank geladen werden.
Da wir den Rest deines Codes nicht kennen, können wir dir auch nicht sagen wo/wan/was aus der Datenbank geholt wird.
Da musst du selbst nachschauen.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Hier verbinde ich mich mit der Datenbank und lese Werte in das DataSet :
conn.Open();
int anzahl = da.Fill(ds, "Kunde");
In 'anzahl' findest Du die Anzahl der geladenen Zeilen.
Findest Du in meinem Link oben.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Im Buch "Visual C++ 2010 hat sich bzgl. der (damaligen ?) ADO.NET-Architektur folgende Grafik im Anhang finden lassen, die das Zusammenspiel der versch. Komponenten aufzeigt.
Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray 😉