:-)

Beim Lesen der Email sieht man meist den Fehler. Natürlich muss beim UPDATE
ein WHERE ID = rein

-----Ursprüngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im
Auftrag von Andreas Rudischhauser (N)
Gesendet: Dienstag, 27. Januar 2004 08:58
An: [EMAIL PROTECTED]
Betreff: [Asp.net] DataTable Update

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

_______________________________________________
Asp.net mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an