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
– 包含loginusername
和password
,成功执行。 – 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
。