我正在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显示出来,表示执行成功。但是,当我在表上检查时,我尝试插入的数据根本没有出现。
MessageBox
我有一个数据库(loginDB.mdf),其中有2个表:TblLogin--包含username,password用于登录目的,已成功执行。-- tblEmp包含员工数据,这是我尝试向其插入数据的数据。
loginDB.mdf
TblLogin
username
password
tblEmp
我不明白的是,为什么MessageBox实际上没有人插入我的影片中时出现tblEmp。
编辑 :ConnectionString至loginDB.mdf:
ConnectionString
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仅用于测试,但仍未显示任何更改。
logindatabase.mdf
如果您的c#代码无任何例外地执行,它也会更新数据库。您可能已AttachDbFilename=|DataDirectory|\yourDB.mdf在中使用ConnectionString,这意味着已更新的数据库位于BIN\DEBUG项目的子文件夹文件夹中。如果要查看更新的数据,只需附加位于bin/debugssms文件夹中的数据库。有关更多详细信息,请阅读这篇文章。另外,请确保服务器资源管理器中的表尚未打开,如果已打开,则必须刷新它以显示更新的数据。请注意:如评论中所述,您应 始终 使用 参数化查询 来避免Sql Injection。
AttachDbFilename=|DataDirectory|\yourDB.mdf
BIN\DEBUG
bin/debug
Sql Injection