Update / Insert Anweisung in OLEDB

MichiStroi

Erfahrenes Mitglied
Hi!
Ich habe mit DataBindings Steuerelementen einen Datensatz angebunden. Und möchte den Wert jetzt aktualisieren bzw. wenn der Datensatz noch nicht besteht diesen hinzufügen.
Das Abrufen der Daten funktioniert ja bestens, allerdings wird leider kein geändeter Wert übernommen, geschweige denn hinzugefügt.
Wie kann man feststellen ob der Datensatz schon besteht?

Zur Erklärung: Ich rufe über einen MonthCalender den entsprechenden Datensatz aus der Datenbank aus sofern er besteht. Ansonsten bleiben die Felder mit den Standartwerten gefüllt.

Wäre toll wenn Ihr mir weiterhelfen könntet. Ich blättere schon Stundenlang in meinen Büchern, doch funktioniert hat bisher noch nichts.

Grüße
Michi


private void mc_DateChanged(object sender, System.Windows.Forms.DateRangeEventArgs e)
{

int i = mc.SelectionStart.Year;
string str = i.ToString();

txtInfo.Text = str;

Anbinden();

bm.EndCurrentEdit();
da.Update(dt);
}




private void Anbinden()
{
try
{
nudRuhepuls.DataBindings.Clear();
nudGewicht.DataBindings.Clear();
nudSchlaf.DataBindings.Clear();
cbRuhetag.DataBindings.Clear();
tbBefinden.DataBindings.Clear();
tbStressfaktor.DataBindings.Clear();
tbReisebelastung.DataBindings.Clear();
tbGesundheitszustand.DataBindings.Clear();
tbWetter.DataBindings.Clear();
nudTemperatur.DataBindings.Clear();
cbVerletzt.DataBindings.Clear();
txtVerletzung.DataBindings.Clear();
txtKrankheit.DataBindings.Clear();
txtMedikamente.DataBindings.Clear();

nudRuhepuls.Value = 0;
nudGewicht.Value = 0;
nudSchlaf.Value = 0;
cbRuhetag.Checked = false;
tbBefinden.Value = 1;
tbStressfaktor.Value = 1;
tbReisebelastung.Value = 1;
tbGesundheitszustand.Value = 1;
tbWetter.Value = 1;
nudTemperatur.Value = 0;
cbVerletzt.Checked = false;
txtVerletzung.Text = "";
txtKrankheit.Text = "";
txtMedikamente.Text = "";

selStr = "SELECT * FROM Trainingstage WHERE Datum = #" + mc.SelectionStart.Month.ToString() + "/" + mc.SelectionStart.Day.ToString() + "/" + mc.SelectionStart.Year.ToString() + "#";
txtInfo.Text = selStr;

conn = new OleDbConnection(connStr);
da = new OleDbDataAdapter(selStr, conn);
cb = new OleDbCommandBuilder(da);
da.SelectCommand = new OleDbCommand(selStr, conn);
dt = new DataTable("Trainingstage");
conn.Open();
da.Fill(dt);
conn.Close();



// Steuerelemente anbinden
nudRuhepuls.DataBindings.Add("Value", dt, "Ruhepuls");
nudGewicht.DataBindings.Add("Value", dt, "Gewicht");
nudSchlaf.DataBindings.Add("Value", dt, "Schlaf");
cbRuhetag.DataBindings.Add("Checked", dt, "Ruhetag");
tbBefinden.DataBindings.Add("Value", dt, "Befinden");
tbStressfaktor.DataBindings.Add("Value", dt, "Stressfaktor");
tbReisebelastung.DataBindings.Add("Value", dt, "Reise");
tbGesundheitszustand.DataBindings.Add("Value", dt, "Krank");
tbWetter.DataBindings.Add("Value", dt, "Wetter");
nudTemperatur.DataBindings.Add("Value", dt, "Temperatur");
cbVerletzt.DataBindings.Add("Checked", dt, "Verletzt");
txtVerletzung.DataBindings.Add("Text", dt, "Verletzung");
txtKrankheit.DataBindings.Add("Text", dt, "Krankheit");
txtMedikamente.DataBindings.Add("Text", dt, "Medikamente");


bm = this.BindingContext[dt];

Krankheit(); //Detailerweiterungen anpassen Feld.Location





}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Fehler in der Datenbankanbindung");
}
}
 
Zurück