DataSet UND DataReader für UPDATE?

Deletemaster

Erfahrenes Mitglied
Hallo wieder einmal zusammen,
ich hole mir alle Informationen zu einem bestimmten Datensatz
diese Informationen werden mittels DataReader in die vorgesehenen Textfelder geladen.

um nach dem modifizieren der Daten ein UPDATE durchführen zu können benötige ich doch ein DataSet und einen DataAdapter
wie kann ich nun das DataSet mit den Informationen die mir der Reader bereitstellt füllen?

um anschließend das UPDATE mittels
if(dataset.HasChanges)
{
dataadapter.Update(ds, "[tabelle"]);
}

Hier mein Connection-Schnipsel:

Code:
private void DatenSatz_Suchen()
{
try
{
	conn.Open();
such_vrn = txt_vrn.Text;

string SQL = "SELECT * FROM [table] WHERE vrn='" + such_vrn +"' ";
OdbcCommand cmd = new OdbcCommand(SQL, conn);
OdbcDataReader reader = cmd.ExecuteReader();

       // Hier sollte der Adapter und das DataSet generiert werden,
       // um die angezeigten Informationen verändern und
       // per Update zurückschreiben zu können		

while(reader.Read())
{
txt_Vorname.Text	+= reader["Vorname"];
txt_Nachname.Text	+= reader["Nachname"];
txt_Strasse.Text        += reader["Straße"];
txt_PLZ.Text	+= reader["PLZ"];
txt_Ort.Text               += reader["Ort"];
txt_Vorwahl.Text	+= reader["Vorwahl"];
txt_Telefon.Text	+= reader["Telefon"];
}
	reader.Close();
	conn.Close();
	Datumsformate_Fuellen();
}
	catch(Exception ex)
	{
	 MessageBox.Show(ex.Message);
	}				
conn.Close();
}

oder gibt es eine einfachere Lösung?
Danke für Eure Hilfe
 

JensG

Erfahrenes Mitglied
Deletemaster,

der DataReader hilft dir da nicht weiter. Dieser ist nur dafür gedacht Daten sehr schnell zu lesen wie ähnlich bei ADO der OpenForwardOnly Cursor (oder so) war.

Ein DataAdapter hat ein Select, Insert und Updatecommand welches über einen Commandbuilder generiert werden kann händisch hinzugefügt wird.

Am besten kann man sich das Beispielhaft ansehen wenn man mit dem DataForm Assistent mal eine Datenform erzeugt. Da wird alles automatisch generiert (Connection, DataAdapter, DataSet usw.) und du kannst dir das anschauen was VS erzeugt hat.

Gruß
Jens