C#SQL INSERT未出现在数据库表中“没有抛出任何错误或异常”

时间:2014-11-26 04:21:44

标签: c# sql-server database

我一直在试图弄清楚为什么我的插入没有出现在我的数据库表中。我已经完成了很多次,我看到没有错误,我没有例外。我是新手使用数据库,所以也许我能看到的东西,任何帮助将不胜感激。谢谢

using(SqlCommand cmd = new SqlCommand("INSERT INTO [dbo].[EmployeeInfo] 
(Id, name, password) VALUES (@Id, @name, @password)", connection)) {
     cmd.CommandType = CommandType.Text;
     cmd.Parameters.AddWithValue("@Id", Id++);
     cmd.Parameters.AddWithValue("@name", name);
     cmd.Parameters.AddWithValue("@password", password);

     try {
       connection.Open();
       //rows effected
       int i = cmd.ExecuteNonQuery();

       MessageBox.Show("User saved");

     } catch (SqlException ex) {
       MessageBox.Show(ex.Message, ex.GetType().ToString());

     } finally {
       nameBox.Clear();
       passwordBox.Clear();
       connection.Close();
     }
}

这是我从配置文件

的连接字符串
<connectionStrings> 
   <add name="SBPA.Properties.Settings.EmployeeLoginConnectionString" 
        connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\EmployeeLogin.mdf;Integrated Security=True" 
        providerName="System.Data.SqlClient" /> 
</connectionStrings>

3 个答案:

答案 0 :(得分:1)

Hay家伙感谢大家几个小时后的回复,我终于发现我的代码没有任何问题。正在更新的数据库是bin / debug文件夹中的数据库,而不是我在解决方案中引用的数据库。我没有意识到在项目上工作的所有更改都是在调试文件夹中的副本完成的。

答案 1 :(得分:0)

你能检查这两件事:

  1. 您获得的i的价值是什么int i = cmd.ExecuteNonQuery()。如果这是1那么:
  2. 您是否在查看插入记录时是指正确的.mdf文件?因为您已引用连接的db文件的连接字符串。

答案 2 :(得分:0)

所以我遇到了同样的问题,原来我输错了,Sql语句很长,所以我无法轻易检测到它,但是在bin目录中一个文本文件记录了错误,所以我很容易搞清楚在哪里纠正Bin folder error logged in txt file