Warum speichern von änderungen an einer Datenbank schlägt fehl?

Habe ich folgende C# - code in eine Konsolenanwendung.

Immer wenn ich Debuggen Sie die Anwendung, und führen Sie die Abfrage1 (fügt einen neuen Wert in der Datenbank) und führen Sie dann query2 (zeigt alle Einträge in der Datenbank), kann ich den neuen Eintrag zu sehen, die ich eingefügt klar. Allerdings, wenn ich schließen Sie die Anwendung und überprüfen Sie die Tabelle in der Datenbank (Visual Studio), es ist Weg. Ich habe keine Ahnung, warum es nicht speichern.

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlServerCe;
using System.Data;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                string fileName = "FlowerShop.sdf";
                string fileLocation = "|DataDirectory|\\";
                DatabaseAccess dbAccess = new DatabaseAccess();
                dbAccess.Connect(fileName, fileLocation);

                Console.WriteLine("Connected to the following database:\n"+fileLocation + fileName+"\n");
                string query = "Insert into Products(Name, UnitPrice, UnitsInStock) values('NewItem', 500, 90)";
                string res = dbAccess.ExecuteQuery(query);
                Console.WriteLine(res);

                string query2 = "Select * from Products";
                string res2 = dbAccess.QueryData(query2);
                Console.WriteLine(res2);
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Console.ReadLine();
            }
        }
    }

    class DatabaseAccess
    {
        private SqlCeConnection _connection;

        public void Connect(string fileName, string fileLocation)
        {
            Connect(@"Data Source=" + fileLocation + fileName);
        }

        public void Connect(string connectionString)
        {
            _connection = new SqlCeConnection(connectionString);
        }

        public string QueryData(string query)
        {
            _connection.Open();
            using (SqlCeDataAdapter da = new SqlCeDataAdapter(query, _connection))
            using (DataSet ds = new DataSet("Data Set"))
            {
                da.Fill(ds);
                _connection.Close();
                return ds.Tables[0].ToReadableString(); //a extension method I created
            }
        }

        public string ExecuteQuery(string query)
        {
            _connection.Open();
            using (SqlCeCommand c = new SqlCeCommand(query, _connection))
            {
                int r = c.ExecuteNonQuery();
                _connection.Close();
                return r.ToString();
            }
        } 
    }

EDIT: Vergaß zu erwähnen, dass ich mit SQL Server Compact Edition 4 und VS2012 Express.

Tun Sie Gerät Debuggen oder emulator?
debug-Schaltfläche in der visual studio (eine, die aussieht wie eine play-Taste) @kostasch.
Sorry, ich dachte, Sie Debuggen eine mobile app. Ich denke, ich erinnere mich, wie die Schaltfläche "Debuggen" aussieht :).
Ihre einfügen auf Datenbank und wählen Sie Ihre Produkte. Ir ist durch copy paste Fehler?
Copy paste Fehler . behoben. thx für die Erwähnung.

InformationsquelleAutor Joe Slater | 2013-06-17

Schreibe einen Kommentar