0

我有以下脚本用于插入 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文件在解决方案之外可见资源管理器,所以我无法检查它我想检查我的数据库文件以进行评估,即数据是否正确插入其中

请告诉我如何做到这一点

谢谢!

4

1 回答 1

2

这是你的问题:

...文件复制属性将 DB 文件移动到 Debug/Bin/Release 文件夹,当我检查项目文件夹中的数据库文件时,它是空的

项目文件夹中的数据库文件是原始的、未更改的源数据。当您构建应用程序时,Visual Studio 会将原始项目文件复制(而不是移动)到您的输出文件夹(Bin/Release 或其他)。您的代码将数据插入副本,而不是原始未更改的数据。

要“检查您的数据库文件以进行评估”,您必须检查副本,而不是原始的、未更改的源文件。您可以从插入数据的同一个应用程序,DataDirectory如果它在同一个输出文件夹中也使用该属性的测试应用程序执行此操作,或者您可以在输出目录中打开文件(在您的情况下为 Bin/release) .

... Bin/Release 文件在解决方案资源管理器之外可见 ...

是的,因为它不是您项目的一部分。它是输出数据,就像您调用Stream.Writeor一样Console.Writeline。原始的、未更改的源数据是您的源的一部分,就像您的 .cs 文件一样。它不会交付给用户或通过运行您的应用程序进行更改。您必须在 Bin/Release 或其他任何内容中测试副本。

于 2012-08-03T19:11:28.600 回答