2012-08-03 25 views
0

我有以下腳本插入到SQL Server CE數據庫檢查SQL Server CE數據庫插入功能應用評估後

SqlCeConnection Con = new SqlCeConnection(); 
Con.ConnectionString = (@"Data Source=|DataDirectory|\Database.sdf;Password=Password;"); 
Con.Open(); 
SqlCeCommand Query = new SqlCeCommand("INSERT INTO Users(ID,Name,FName,Address,MCode,MNum,Amount) VALUES(@ID,@Name,@FName,@Address,@Code,@Num,@Amount)", Con) 
Query.Parameters.AddWithValue("@ID", ID + 1); 
Query.Parameters.AddWithValue("@Name", NBox.Text); 
Query.Parameters.AddWithValue("@FName", SOBox.Text); 
Query.Parameters.AddWithValue("@Address", AdBox.Text); 
Query.Parameters.AddWithValue("@Code", Convert.ToInt32(MCode.Text)); 
Query.Parameters.AddWithValue("@Num", Convert.ToInt32(MNum.Text)); 
Query.Parameters.AddWithValue("@Amount", Convert.ToInt32(AmBox.Text)); 

int rowsEffected=Query.ExecuteNonQuery(); 

MessageBox.Show(rowsEffected.ToString()); 

消息框顯示rows affected=1插入後,這意味着數據成功插入到數據庫中,我使用VC#2010作爲文件複製屬性將數據庫文件移動到Debug/Bin/Release文件夾,當我檢查我的項目文件夾中的數據庫文件時,它是空的,因爲Bin/Release文件在解決方案資源管理器外部可見,所以我無法檢查它我想檢查我的用於評估的DB文件,即數據是否正確地插入其中

請告訴我該怎麼做

謝謝!

+0

你需要一個提交你可以改變你的代碼來包含一個交易對象,你可以將你的代碼包裝在一個Try {} Catch {}中,然後一步一步通過代碼..也許你有一個異常被拋出並且不實現它.. – MethodMan 2012-08-03 18:44:05

+0

嘗試添加一個try/catch語句,並對其進行調試。我無法理解文件複製屬性將db移動到debug/bin/release的意思,並且您看到該文件夾​​爲空。既然你沒有在一個事務中包裝你的操作,你不需要提交,這不是你的問題。 – Jason 2012-08-03 18:52:09

回答

2

這是你的問題:

...文件拷貝屬性數據庫文件移動到調試/斌/ release文件夾,當我檢查我的數據庫文件在我的項目文件夾爲空

中的數據庫文件您的項目文件夾是原始的,未更改的源數據。當您構建應用程序時,Visual Studio將原始項目文件複製(不移動)到您的輸出文件夾(Bin/Release或其他)。您的代碼將數據插入副本,而不是原始未更改的數據。

要「檢查您的數據庫文件進行評估」,您必須檢查副本,而不是原始,未更改的源文件。您可以使用插入數據的相同應用程序來執行此操作,也可以使用測試應用程序,該測試應用程序使用DataDirectory屬性(如果它位於相同的輸出文件夾中),也可以在輸出目錄中打開該文件(您的案例中的Bin/release )。

...斌/釋放文件的解決方案資源管理外部可見...

是的,因爲它不是你的項目的一部分。它是輸出數據,就好像你叫Stream.WriteConsole.Writeline一樣。原始的,未更改的源數據是源文件的一部分,就像.cs文件一樣。它不會傳遞給用戶,也不會通過運行您的應用程序進行更改。你必須在Bin/Release或其他方面測試拷貝。

+1

所以如何測試這個bin /釋放DB文件我的問題是如何檢查它請詳細告訴我 – user1366440 2012-08-04 11:01:22

+0

解釋你的意思是「如何測試」。我不明白。 – 2012-08-04 15:16:18