2011-03-22 40 views
0

我在.NET中創建一個新的項目(2010年4.0),並增加了SDF數據文件。我已經生成了一個數據集並在其中創建了一個表(我相信生成了Fill和其他方法)。淨簡單的數據文件用途

在代碼中,我試圖將一行添加到數據庫中。

 eBureauScrubber.App_Data.matchingtempDataSet ds = new App_Data.matchingtempDataSet(); 
     eBureauScrubber.App_Data.matchingtempDataSet.ctfFileRow row = ds.ctfFile.NewctfFileRow(); 
     row.Address = "123 Main St."; 
     row.City = "Overland Park"; 
     row.FirstName = "Matt"; 
     row.LastName = "Dawdy"; 
     row.rownum = 1; 

編輯:增加了下一個代碼位。

 ds.ctfFile.Rows.Add(row); 
     ds.ctfFile.AcceptChanges(); 
     ds.AcceptChanges(); 

     eBureauScrubber.App_Data.matchingtempDataSetTableAdapters.ctfFileTableAdapter ctfa = new App_Data.matchingtempDataSetTableAdapters.ctfFileTableAdapter(); 
     ctfa.Update(ds.ctfFile); 

這運行良好。但是,程序完成後,數據不會保留在數據庫中。我錯過了什麼?

編輯:我試過的AcceptChanges()的數據表,該數據集的所有不同的組合,運行update()前,後,等我失去了一些東西在這裏巨大。我甚至不確定它是否連接到「正確的」數據庫。也許這是我的問題。

編輯2:這是我獲得這項工作(它仍然時髦,雖然)。

  1. 變化的App_Data我的數據庫文件的屬性爲「不復制」
  2. 手動複製數據庫文件到BIN \調試\ app_data文件
  3. 使用數據適配器的填充方法來填充ds.ctfFile數據表。
  4. 創建一行(.NewctfFileRow())
  5. 在該行上設置值。
  6. ds.ctfFile.Rows.Add(row)
  7. ds.ctfFile.AcceptChanges();
  8. ds.AcceptChanges();
  9. 調用adapater的更新方法。

現在,數據在我的數據庫文件中(在bin \ debug \ app_data中),但由於數據源連接,我看不到它。我仍然試圖找出如何做到這一點。

+0

不接受更改僅在內存中更新它?你需要調用適配器的Update方法來更新數據庫。 – WorldIsRound 2011-03-22 17:00:31

回答

2

它應該已經產生了TableAdapter類,你必須調用數據保存在數據庫中的.Update()方法。有關示例,請參閱MSDN

+0

它的確如此。我沒有正確使用它。首先,它總是複製數據庫的新副本。某處。然後我不得不手動將數據庫複製到bin \ debug \ app_data文件夾。然後我不得不用適配器填充數據集,然後實際插入。只有我知道的原因是它試圖插入一個重複的鍵,所以我現在在我的app_code文件夾中有一個數據庫,我想這是一個模板,而Data Sources explorer可以連接到它,但不會不顯示數據。我有另一個數據庫,有數據,但我不知道如何查看它,除了在執行代碼。 – 2011-03-22 17:25:09