tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
359
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Grorkef Grorkef ist offline Grünschnabel
    Registriert seit
    Jan 2010
    Beiträge
    3
    Hallo,
    ich habe das Problem das ich über mein Programm Daten in eine Datenbank lade über dataAdapter.Update. Wenn ich das gemacht habe und das Programm schließe und wieder öffne sind die Datensätze vorhanden, wenn ich nun aber das Programm schließe und dann im Sever-Explorer(VS2008) mir die Tabelle der Datenbank anschauen möchte löscht er alle einträge darin. Das echt nervig hoffe es hat jemand von euch eine Idee wie man das verhindern kann.

    MFG Daniel L.
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.883
    Blog-Einträge
    34
    Hi

    Update ändert nur bestehende Datensätze und fügt keine neuen hinzu.
    Führst du auch ein Commit aus?

    Was ist unter
    Wenn ich das gemacht habe
    zu verstehen?
    Post doch mal bitte den relevanten Code, dass wir sehen, was du da genau machst
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    Grorkef Grorkef ist offline Grünschnabel
    Registriert seit
    Jan 2010
    Beiträge
    3
    Hi,

    Hier mal das bisschen Code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    SqlCeDataAdapter dA2 = new SqlCeDataAdapter();           
                command.CommandText = "SELECT * FROM Gebäude";
                dA2.SelectCommand = command;
                SqlCeCommandBuilder CommandBuilder = new SqlCeCommandBuilder(dA2);
                try
                {
                    dA2.Update(dataSet.Tables["Gebäude"]);
                }
                catch (Exception e1)
                {
                    MessageBox.Show("Error: " + e1.Message);
                }
     

  4. #4
    Avatar von StupidBoy
    StupidBoy StupidBoy ist offline Mitglied Gold
    Registriert seit
    Aug 2005
    Ort
    Bremen
    Beiträge
    196
    Ja, ein bisschen Code ist das wirklich, da steig ich nicht ganz durch.
    In der MSDN steht ein Beispiel das die Funktionsweise des CommandBuilder ganz schön illustriert.

    Wo nimmst du das command-Object her, und wo baust du die Verbindung auf?

    Ich hab das mal ein wenig kommentiert und ein ganz klein wenig geändert, denke das sollte reichen um darauf aufzubauen:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    
    using System;
    using System.Data;
    using System.Data.SqlServerCe;
     
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                try {
                    //Connection rrstellen
                    using (SqlCeConnection conn = new SqlCeConnection(@"Data Source = D:\MyDatabase.sdf"))
                    {
                        //Connection öffnen
                        conn.Open();
     
                        //SQL Command erstellen
                        SqlCeCommand cmd = conn.CreateCommand();
                        //SQL Command CommandText ZUWEISEN
                        cmd.CommandText = "SELECT * FROM testTable";
     
                        //DataAdapter erstellen
                        SqlCeDataAdapter adp = new SqlCeDataAdapter(cmd);
     
                        //CommandBuilder erstllen
                        SqlCeCommandBuilder cb = new SqlCeCommandBuilder();
                        //DataAdapter des CommandBuilder zuweisen
                        cb.DataAdapter = adp;
     
                        //Testausgaben
                        Console.WriteLine(cb.GetUpdateCommand().CommandText);
                        Console.WriteLine("\r\n\r\n");
                        Console.WriteLine(cb.GetInsertCommand().CommandText);
                        Console.WriteLine("\r\n\r\n");
                        Console.WriteLine(cb.GetDeleteCommand().CommandText);
                        Console.WriteLine("\r\n\r\n");
     
                        //Neues Dataset Erstellen und befüllen
                        DataSet ds = new DataSet();
                        adp.Fill(ds);
     
                        //Testausgabe des Datasets
                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                            Console.WriteLine(ds.Tables[0].Rows[i].ItemArray[0]);
     
                        //DataSet bearbeiten
                        ds.Tables[0].Rows[0]["name"] = "Joe";
     
                        //Daten zum DataSet hinzufügen
                        object[] newData = {"Joey", "CFO", "01.01.2001"};
                        ds.Tables[0].Rows.Add(newData);
     
                        //Update (geändertes DataSet) in die DB schreiben (daraus wird hier ein UPDATE für den geänderten Datensatz und ein INSERT für den neuen Datensatz)
                        adp.Update(ds);
                    }
                }
                catch (Exception e1)
                {
                    Console.WriteLine(e1.ToString());
                }
                Console.ReadKey();
     
            }
        }
    }

    SqlCeCommandBuilder in der MSDN
    Geändert von StupidBoy (22.02.10 um 23:17 Uhr)
     
    Grüße SB

Ähnliche Themen

  1. Tabellen von selbst geleert?!
    Von Jeannine im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 04.02.08, 10:28
  2. MySQL - Tabelle geleert, Daten wiederholen?
    Von Hattrix im Forum Relationale Datenbanksysteme
    Antworten: 12
    Letzter Beitrag: 11.12.06, 09:56
  3. Antworten: 3
    Letzter Beitrag: 22.09.05, 01:13
  4. Probleme beim Update -> Datensatz wird geleert
    Von rohland70 im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 11.04.05, 17:33