2014-10-17 118 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