2014-10-17 85 views
0

我试图通过用户输入将备注保存到数据库中,但我的代码没有保存到数据库。查询不保存到数据库

我打算检查用户输入以及功能。

SqlConnection con = database.GetConnection(); 
SqlCommand command = new SqlCommand("INSERT INTO notities (notities_gebruiker, notities_datum, notities_doeldatum, notities_bericht) values(@notities_gebruiker, @notities_datum, @notities_doeldatum, @notities_bericht)", con); 
command.Parameters.AddWithValue("@notities_gebruiker", this.gebruikerid.ToString()); 
command.Parameters.AddWithValue("@notities_datum", DateTime.Now); 
command.Parameters.AddWithValue("@notities_doeldatum", DateTime.ParseExact(this.targetDate.Text, "dd/MM/yyyy", null)); 
command.Parameters.AddWithValue("@notities_bericht", this.Note.Text); 
con.Open(); 
command.ExecuteNonQuery(); 
con.Close(); 
initialiseListBox(); 

发生了什么事是,每当我闭上我的应用程序的数据库失去它保存的值并回到原来的状态。我可以手动添加项目..

编辑:它回滚我通过应用程序中添加的行,但我能够从我保存的数据库中拉出数据,如果我保持它运行。

+0

很难说得清的问题来自刚刚与只有信息...难道你得到任何错误讯息?导致我在这里看到的代码看起来很好 – 2014-10-17 10:03:09

+0

我什么也没得到ExecutenNonQuery甚至返回1,但每当我关闭我的应用程序时,数据库就回到它以前的状态。 – Script99 2014-10-17 10:04:06

+3

听起来就像你正在重建每一个版本的数据库......检查是否是这种情况,因为你显示的代码是好的。 – walther 2014-10-17 10:08:09

回答

0

查找包含bin/debug文件夹中的数据的数据库副本。

避免这种情况的最佳方法是在连接字符串中使用完整路径并避免| DataDirectory |同时调试

1

您忘记提交刚刚插入的数据。使用的SqlTransaction类开始交易:

SqlTransaction myTransaction = con.BeginTransaction(); 
command.ExecuteNonQuery(); 
myTransaction.Commit(); 

这将是一个好主意,以使用using语句,以确保您的网络连接,命令和事务设置的一次代码块已经完成,而比手动调用Close()的方法:

Using (SqlConnection con = database.GetConnection()) 
    { 
    con.Open(); 

    Using (SqlCommand command = new SqlCommand("sqlhere")) 
     { 

     Using (SqlTransaction myTransaction = con.BeginTransaction()) 
      { 
       //your code here 
      } 

     } 
    } 

的SqlTransaction类:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqltransaction(v=vs.110).aspx

纯articl e。使用报表上:

http://www.codeproject.com/Articles/6564/Understanding-the-using-statement-in-C

+0

但即使你不使用'transaction','commit',只是使用OP的问题,它应该可以工作! – 2014-10-17 10:23:50

+0

OP的数据库必须关闭隐式提交。检查这篇文章:http://stackoverflow.com/questions/1090240/how-do-you-set-autocommit-in-an-sql-server-session – JoshHunter 2014-10-17 10:40:49