2016-12-09 6 views
1

Wenn ich meine Datenbank öffnen, gibt es nichts hinzugefügt. Ich denke, es sollte den Text hinzufügen, was der Benutzer in die Textfelder einfügt.Kann nicht in SQL Server-Datenbank eingefügt werden

Die Verbindungszeichenfolge ist:

Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirector‌​y|\Speler.mdf;Integr‌​ated Security=True 
+2

Überprüfen Sie, ob Ihre Situation wie die hier beschriebenen ist http://StackOverflow.com/Questions/17147249/Why-Saving-Change-Toa-Database- fails/17147460 # 17147460 – Steve

+0

Umgeben Sie es mit einem Try-Catch und legen Sie einen Haltepunkt in den Fang –

+0

Sind Sie auf die richtige Datenbank ausgerichtet? Was ist Ihre Verbindungszeichenfolge? Versuchen Sie, in einer dateibasierten Datenbank zu speichern? –

Antwort

0

Was passiert, wenn Ihre Frage nicht in der Lage zu laufen? Wenn Sie eine Ausnahme erhalten, müssen Sie Ihre Einfügung wiederholen.

Die Methode ExecuteNonQuery() kann die Anzahl der eingefügten Zeilen zurückgeben.

+2

A 100 Versuche wird nicht helfen, wenn die * falsche * Datenbank überprüft wird. Dies ist der Fall bei Benutzerinstanzdatenbanken. Übrigens sollte dies ein Kommentar sein –

+0

Ich habe die anderen Kommentare nicht gesehen, während ich das geschrieben habe. Und ja, du hast Recht. das sollte auch kommentieren :) –

2

Es ist nichts falsch mit dem Code. Ich vermute, dass die Verbindungszeichenfolge eine Benutzerinstanz Datenbank verwendet, dh es die AttachDBFilename und User Instance=true Schlüsselwörter hat:

Data Source=.\SQLEXPRESS; AttachDBFilename=|DataDirectory|\db.mdf; User Instance=true;... 

Das bedeutet, dass jeder Benutzer, der auf die Datenbankdatei zu befestigen versucht, seine eigene Kopie erhält. Wenn Sie versuchen, die Daten mit SSMS zu überprüfen, sehen Sie eine andere Kopie der Datenbank.

Diese Funktion ist nicht nur verwirrend, sondern veraltet und wird in Zukunft entfernt.

Nur eine richtige Datenbank in der Datenbankserver erstellen und eine Verbindung zu ihm durch Angabe ihres Namens:

Data Source=.\SQLEXPRESS; Initial Catalog=MyDB;... 

Sie die Datenbank erstellen kann entweder aus dem New Database Menü in SSMS oder mit einem CREATE DATABASE MyDB Befehl

Weitere Informationen finden Sie in Bad habits : Using AttachDBFileName von Aaron Bertrand

Verwandte Themen