SQL命令INSERT正在工作,但数据不出现在表中

我正在使用MS VS 2010 Express Edition在我的Visual C#.NET中执行SQL命令INSERT

 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!"); } 

执行此操作时, MessageBox出现,意味着执行成功。 但是,当我查看表格时,我之前尝试插入的数据根本没有出现。

我有一个数据库( loginDB.mdf )里面有两个表: – TblLogin – 包含loginusernamepassword ,成功执行。 – tblEmp – 包含员工数据,这是我试图插入数据。

我不明白的是为什么MessageBox出现时,实际上没有插入到我的tblEmp

编辑ConnectionString loginDB.mdf

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

数据库名称是loginDB.mdf而不是以前写的logindatabase.mdf 。 我把它改成了loginDB.mdf就是为了testing它,但是仍然没有改变。

如果你的c#代码没有任何例外地执行,它也会更新数据库。 您可能在ConnectionString使用了AttachDbFilename=|DataDirectory|\yourDB.mdf ,这意味着更新的数据库位于项目的子文件夹BIN\DEBUG文件夹中。 如果您想查看更新的数据,只需将位于bin/debug文件夹中的数据库附加到ssms中即可。 欲了解更多细节阅读这篇文章。 另外,请确保您的服务器资源pipe理器中的表尚未打开,如果它已经打开,您必须刷新它才能显示更新的数据。 请注意:正如注释中所提到的,您应该始终使用参数化查询来避免Sql Injection