ServerCompact Datensatz auslesen


devshack

Grünschnabel
Ich habe derzeit ein etwas größeres Problem, eher gesagt ein Logik & Verständnis Problem aber evtl. kann mich ja von euch einer auf den richtigen Weg schupsen :)

Ich möchte Werte in eine DB schreiben, soweit auch alles kein Problem
Code:
if (cn.State == ConnectionState.Closed)
            {
                cn.Open();
            }
            SqlCeCommand cm = new SqlCeCommand("INSERT INTO Tracking(Kategorie, Seriennummer, Bezeichnung, Status, Aufenthaltsort, Position, Datum, Wer, Bemerkung, CleanCounter) VALUES(@Kategorie, @Seriennummer, @Bezeichnung, @Status, @Aufenthaltsort, @Position, @Datum, @Wer, @Bemerkung, @CleanCounter)", cn);
            cm.Parameters.AddWithValue("@Kategorie", Id.ToString());
            cm.Parameters.AddWithValue("@Seriennummer", TbSeriennummer.Text);
            cm.Parameters.AddWithValue("@Bezeichnung", CbBezeichnung.Text);
            cm.Parameters.AddWithValue("@Status", CbStatus.Text);
            cm.Parameters.AddWithValue("@Aufenthaltsort", CbAufenthaltsort.Text);
            cm.Parameters.AddWithValue("@Position", CbPosition.Text);
            cm.Parameters.AddWithValue("@Datum", TbDatum.Text);
            cm.Parameters.AddWithValue("@Wer", TbWer.Text);
            cm.Parameters.AddWithValue("@Bemerkung", TbBemerkung.Text);

            if (CbStatus.Text == "Im Cleaning")
            {
                cm.Parameters.AddWithValue("@CleanCounter", ccZahl++);
            }
            else
            {
                cm.Parameters.AddWithValue("@CleanCounter", "");
            }

            try
            {
                int affectedRows = cm.ExecuteNonQuery();

                if (affectedRows > 0)
                {
                    MessageBox.Show("Eintrag erfolgreich", "Statusmeldung", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    TbSeriennummer.Text = "";
                    CbBezeichnung.Text = "";
                    CbStatus.Text = "";
                    CbAufenthaltsort.Text = "";
                    CbPosition.Text = "";
                    TbDatum.Text = "";
                    TbWer.Text = "";
                    TbBemerkung.Text = "";
                    TbCleanCounter.Text = "";
                }
                else
                {
                    MessageBox.Show("Eintrag fehlgeschlagen!", "Statusmeldung", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Fehlermeldung", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                cn.Close();
            }

Nun kommt aber das eigentliche und zwar muss ich vorher den letzten Datensatz in der DB mit dem Teil (Seriennummer) finden und dort den CleanCounter Wert auslesen um diesen dann weiter verarbeiten (int++) zu können. Nur findet der keinen
Code:
SqlCeCommand cmTest = new SqlCeCommand("SELECT Tracking FROM CleanCounter WHERE ([CleanCounter] = '" + TbSeriennummer.Text + "'", cn);
SqlCeDataAdapter da = new SqlCeDataAdapter(cmTest);

EDIT:
Gleich mal noch eine Frage hinter her, wie muss ich denn Schreiben wenn ich zwei Spalten auslesen möchte?
Code:
"SELECT Anlage FROM Anlage WHERE Kategorie='" + Id.ToString() + "' AND 'Sonstige'"
 
Zuletzt bearbeitet:

raiguen

Mitglied
Diese WHERE-CLausel scheint mir merkwürdig:
WHERE ([CleanCounter] = '" + TbSeriennummer.Text + "'", cn) !?

Zur 2.Frage:
Code:
SELECT Anlage, Bezeichnung FROM Anlage WHERE...