SQL命令INSERT正在运行但数据未出现在表

时间:2015-07-24 07:49:45

标签: c# sql-server insert sql-server-express

我在使用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),里面有2个表: - TblLogin - 包含usernamepassword用于成功执行的登录目的。 - tblEmp - 包含员工数据,这是我尝试将数据插入的数据。

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

编辑ConnectionStringloginDB.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只是为了测试它,但仍然没有变化。

1 个答案:

答案 0 :(得分:4)

如果您的c#代码执行没有任何异常,它也会更新数据库。您可能在AttachDbFilename=|DataDirectory|\yourDB.mdf中使用了ConnectionString,这意味着更新的数据库位于项目的子文件夹BIN\DEBUG文件夹中。如果要查看更新的数据,只需附加位于ssms中bin/debug文件夹中的数据库。 有关详细信息,请阅读this帖子。 还要确保您的服务器资源管理器中的表尚未打开,如果它已经打开,您必须刷新它以显示更新的数据。请注意:正如评论中所述,您应始终使用参数化查询以避免Sql Injection.