2011-03-07 184 views
2

我想寫一些數據只具有一個表中的.MDF數據庫,以後我執行這部分代碼它不更新:數據庫沒有更新

 DatabaseDataSet.MyTableRow newRow; 
     newRow = databaseDataSet.MyTable.NewMyTableRow(); 
     newRow.name = "x"; 
     newRow.level = 100; 
     newRow.health = 100; 
     newRow.weapon = "club"; 
     this.databaseDataSet.MyTable.Rows.Add(newRow); 

     int result = MyTableTableAdapter.Update(databaseDataSet.MyTable); 
     MessageBox.Show(result.ToString()); 

我是新來的在C#中使用SQL數據庫。

我使用TableAdapter.Update來更新數據庫中的表MyTable,我甚至試着寫更新我自己查詢的版本,我也試圖與MyTableAdapter.insert功能......也沒有結果。我可以成功地從數據庫讀取數據,但是在寫作時,我會很難。

+0

您可以仔細檢查您的MDF文件(或包含該文件的文件夾)是否具有寫入權限? – Raptor 2011-03-07 04:22:55

+0

你打電話給SaveChanges()嗎? – vissi 2011-03-07 05:11:07

+0

我檢查過,沒有任何mdfs是隻讀的,這意味着我有權更改它們。 另外,我沒有調用SaveChanges()或類似的東西。更新應該使數據庫中的更改,我認爲。 – 2011-03-07 13:26:35

回答

1

更新(插入和刪除)只會修改表格適配器的本地客戶端視圖,您必須通過SaveChanges將其提交到數據庫。

0

我會冒險猜測你正在項目中使用緊湊的SQL數據庫嗎?
這意味着無論程序在哪裏運行,都會創建一個數據庫文件。
因此,如果以調試模式運行,則會在bin/Debug文件夾中獲取數據庫。在Release模式下運行它,並且您正在處理bin/Release文件夾中完全不同的數據庫。運行安裝的版本,它又是一個不同的數據庫文件。

當我用一個緊湊的SQL數據庫構建我的第一個.net程序時,我發現這一點非常快,重要的是要知道整個數據庫位於與運行程序通常位於同一目錄中的單個文件中。始終牢記這一事實,並且許多像這樣的小問題不會咬你。