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

SQL command INSERT is working but the data not appear in table(SQL 命令 INSERT 正在工作,但数据未出现在表中)
本文介绍了SQL 命令 INSERT 正在工作,但数据未出现在表中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am executing SQL command INSERT like this in my Visual C#.NET using 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!");
}

执行时出现MessageBox,表示执行成功.但是,当我检查表格时,我之前尝试插入的数据根本没有出现.

When executing this, the MessageBox showed up which means the execution was successful. But, when I checked on the table , the data that I am trying to insert before isn't appear at all.

我有一个数据库(loginDB.mdf),里面有 2 个表:- TblLogin - 包含 usernamepassword 用于成功执行的登录目的.- tblEmp - 包含员工数据,这是我尝试插入数据的数据.

I have one database (loginDB.mdf) with 2 tables inside : - TblLogin - contains username and password for login purpose which executed successfully. - tblEmp - contains employee data, this is the one that I tried to insert data to.

我不明白的是为什么 MessageBox 实际上没有插入到我的 tblEmp 中.

What I don't understand is why the MessageBox appear when in fact none inserted into my tblEmp.

编辑:ConnectionStringloginDB.mdf:

Data Source=.SQLEXPRESS;AttachDbFilename="C:UsersAndreasdocumentsvisual studio 2010ProjectsLoginApplicationLoginApplicationloginDB.mdf";Integrated Security=True;User Instance=True

数据库名称是 loginDB.mdf 而不是之前写的 logindatabase.mdf.我把它改成 loginDB.mdf 只是为了测试它,但仍然没有出现任何变化.

The database name is loginDB.mdf instead of logindatabase.mdf as previously written. I changed it to loginDB.mdf just to test it, but still no changes appear.

推荐答案

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

If your c# code executes without any exceptions, it updates the database too. You have probably used AttachDbFilename=|DataDirectory|yourDB.mdf in your ConnectionString, that means the databse that is updated is located in the subfolder BINDEBUG folder of your project. If you want to see the updated data just attach the database located in the bin/debug folder in ssms. for more details read this post. Also make sure your table in server explorer is not already open, if it is already open you must refresh it to show updated data. Please note:as mentioned in the comments you should always use parameterized queries to avoid Sql Injection.

这篇关于SQL 命令 INSERT 正在工作,但数据未出现在表中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)