Guten Morgen,
ich verzweifle gerade mal wieder. Ich will einen Zeile (Row) in einer
DataTable ver�ndern und dann mit Update die Ergebnisse in der Datenbank
aktualisieren. Das Problem ist, dass nachdem ich adapter.Update() aufrufe
ALLE Zeilen in meiner DB die neuen Eintr�ge haben. Ich finde einfach den
Fehler nicht:
DataTable table = this.dataset.Tables["tbArzneimittel"];
DataRow [] cur = table.Select("IDTXT = '" +
(string)this.listBox1.SelectedItem + "'");
((DataRow)cur[0])["Zusammensetzung"] =
this.txtZusammensetzung.Text;
((DataRow)cur[0])["Anwendungsgebiete"] =
this.txtAnwendungsgebiete.Text;
((DataRow)cur[0])["Dosierung"] =
this.txtDosierung.Text;
((DataRow)cur[0])["Pharmakologie"] =
this.txtPharmakologie.Text;
((DataRow)cur[0])["Gegenanzeigen"] =
this.txtGegenanzeigen.Text;
((DataRow)cur[0])["Nebenwirkungen"] =
this.txtNebenwirkungen.Text;
((DataRow)cur[0])["Wechselwirkungen"] =
this.txtWechselwirkungen.Text;
((DataRow)cur[0])["Packungsgr��en"] =
this.txtPackung.Text;
((DataRow)cur[0])["Hinweise"] =
this.txtHinweise.Text;
try {
myConnection.Open();
adapter.Update(table);
myConnection.Close();
} catch (Exception ex) {
MessageBox.Show(ex.ToString());
}
Und der DataAdapter wird so aufgebaut:
try {
myConnection = new
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c:/hevert.mdb;Persist Security Info=False");
myConnection.Open();
adapter = new OleDbDataAdapter("SELECT *
FROM tb_Arzneimittel",myConnection);
OleDbCommand myCommand = new
OleDbCommand("UPDATE tb_Arzneimittel SET [Zusammensetzung] = @Z,
[SonstigeBestandteile] = @S, [Anwendungsgebiete] = @A, [Dosierung] = @D,
[Pharmakologie] = @P, [Gegenanzeigen] = @G, [Nebenwirkungen] = @N,
[Wechselwirkungen] = @W, [Packungsgr��en] = @P, [Hinweise] =
@H",myConnection);
OleDbParameter meter = new OleDbParameter();
meter.ParameterName = "@Z";
meter.OleDbType = OleDbType.VarChar;
meter.SourceColumn = "Zusammensetzung";
myCommand.Parameters.Add(meter);
meter = new OleDbParameter();
meter.ParameterName = "@S";
meter.OleDbType = OleDbType.VarChar;
meter.SourceColumn = "SonstigeBestandteile";
myCommand.Parameters.Add(meter);
meter = new OleDbParameter();
meter.ParameterName = "@D";
meter.OleDbType = OleDbType.VarChar;
meter.SourceColumn = "Dosierung";
myCommand.Parameters.Add(meter);
meter = new OleDbParameter();
meter.ParameterName = "@P";
meter.OleDbType = OleDbType.VarChar;
meter.SourceColumn = "Pharmakologie";
myCommand.Parameters.Add(meter);
meter = new OleDbParameter();
meter.ParameterName = "@G";
meter.OleDbType = OleDbType.VarChar;
meter.SourceColumn = "Gegenanzeigen";
myCommand.Parameters.Add(meter);
meter = new OleDbParameter();
meter.ParameterName = "@N";
meter.OleDbType = OleDbType.VarChar;
meter.SourceColumn = "Nebenwirkungen";
myCommand.Parameters.Add(meter);
meter = new OleDbParameter();
meter.ParameterName = "@W";
meter.OleDbType = OleDbType.VarChar;
meter.SourceColumn = "Wechselwirkungen";
myCommand.Parameters.Add(meter);
meter = new OleDbParameter();
meter.ParameterName = "@Pa";
meter.OleDbType = OleDbType.VarChar;
meter.SourceColumn = "Packungsgr��en";
myCommand.Parameters.Add(meter);
meter = new OleDbParameter();
meter.ParameterName = "@H";
meter.OleDbType = OleDbType.VarChar;
meter.SourceColumn = "Hinweise";
myCommand.Parameters.Add(meter);
adapter.UpdateCommand = myCommand;
adapter.Fill(dataset,"tbArzneimittel");
foreach (DataRow row in
dataset.Tables["tbArzneimittel"].Rows) {
this.listBox1.Items.Add((string)row["IDTXT"]);
this.listBox1.SelectedIndex = 0;
}
} catch (Exception ex) {
MessageBox.Show(ex.ToString());
} finally {
if (myConnection != null)
myConnection.Close();
}
_______________________________________________
Asp.net mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/asp.net