SQL-Kommando INSERT arbeiten, aber die Daten erscheinen nicht in der Tabelle

Ich bin ausgeführte SQL-Befehl INSERT so in meinem Visual C#.NET mit dem MS VS 2010 Express Edition:

private void btnAdd_Click(object sender, EventArgs e)
{
     SqlConnection con = new SqlConnection(Properties.Settings.Default.loginDBConnectionString);
     con.Open();
     SqlCommand cmd = new SqlCommand("INSERT INTO tblEmp (ID, firstname, lastname, email, position) VALUES ('"+textBox1.Text+"','"+textBox2.Text+"', '"+textBox3.Text+"', '"+textBox4.Text+"', '"+comboBox1.Text+"')", con);
     cmd.ExecuteNonQuery();
     con.Close();
     MessageBox.Show("Data Added!");
}

Beim ausführen dieser, die MessageBox auftauchte, was bedeutet, dass die Ausführung erfolgreich war. Aber, wenn ich überprüft auf dem Tisch , die Daten, die ich versuche zu legen, bevor nicht angezeigt.

Ich habe eine Datenbank (loginDB.mdf) mit 2 Tischen innen :
- TblLogin - enthält username und password für login-Zwecke, die erfolgreich ausgeführt.
- tblEmp - enthält die Daten des Mitarbeiters, das ist die, die ich habe versucht, in die Daten eingefügt werden.

Was ich nicht verstehe, ist, warum die MessageBox angezeigt, wenn in der Tat nichts eingefügt in meine tblEmp.

BEARBEITEN : ConnectionString zu loginDB.mdf :

Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Users\Andreas\documents\visual studio 2010\Projects\LoginApplication\LoginApplication\loginDB.mdf";Integrated Security=True;User Instance=True

Der name der Datenbank ist loginDB.mdf statt logindatabase.mdf wie bereits geschrieben. Ich geändert es zu loginDB.mdf nur um es zu testen, aber noch keine änderungen angezeigt.

Bitte zeigen Sie Ihre ConnectionString zu.
Ist ID eine identity-Spalte, die automatisch erzeugt Wert legen? Verwenden Sie immer parametrisierte Abfragen anstelle des string-Verkettung zu erstellen Sie Ihre sql-Abfragen. Ansonsten ypou sind anfällig für sql-injection.
Erste, was zu tun, abgesehen von allem anderen: stop-erstellen von SQL-so. Verwendung von parametrisierten SQL zur Vermeidung von SQL-injection-Angriffen, vermeiden Sie conversion-Probleme und machen den code lesbarer zu gestalten.
Sollten Sie immer parametrisierte Abfragen. Diese Art von string-Verkettungen sind offen für SQL-Injection - Angriffe. Haben Sie jemals überprüfen den Rückgabewert für ExecuteNonQuery Methode? Es gibt 1 genau? Was ist deine Variablen? Hast du mal versucht die Abfrage in Ihrer Datenbank-manager zuerst?
Auch sollten Sie verwenden using Konstruktion für SqlConnection (und für andere IDisposables).

InformationsquelleAutor Andreas Adhiguna Hartono | 2015-07-24

Schreibe einen Kommentar