在visual Studio 2012 . sdf文件没有替换(提交)我对原始文件的更改

本文关键字:文件 原始 提交 替换 2012 Studio visual sdf | 更新日期: 2023-09-27 18:04:13

我有一个问题插入到我的SQL CE数据库。

我写了一些代码,然后当我需要一个数据库时,我右键单击投影,添加新项目,本地数据库,之后它给我选择一个数据模型-我选择了'dataset'。

这为我创建了一个DB,在我左边的服务器资源管理器下,在我右边的解决方案资源管理器中可以看到相同的。sdf文件。

我启动我的应用程序,我运行插入查询,它给我输出插入成功,我看到根/bin/Debug/db下的。sdf文件。我关闭了我的应用程序,但是我原来的数据库位于/root/db.sdf如果我从服务器资源管理器查询DB,我看不到任何更改/插入的行。下面是我使用的代码:

首先我尝试了服务器数据源选项,所有未注释的选项都不适合我。

            //String connectString = @"Data Source=" + '"' + @"C:'Users'Alex'Documents'Visual Studio 2012'Projects'my'my'myDB.sdf;" + '"';
            //String connectString = "Data Source:=" + '"' + @"C:'Users'Alex'Documents'Visual Studio 2012'Projects'my'my'my.sdf" + '"';
            //String connectString = "Data Source:=C:''Users''Alex''Documents''Visual Studio 2012''Projects''my''my''my.sdf";
            //String connectString =@"Data Source:=C:'Users'Alex'Documents'Visual Studio 2012'Projects'my'my'myDB.sdf";
            String connectString = "Data Source=myDB.sdf";
            using (SqlCeConnection connection = new SqlCeConnection(connectString))
            {
                connection.Open();
                String query = "Insert into items (id, title)  VALUES ('" + ID + "', '" + title + "');                  
                SqlCeCommand cmd = new SqlCeCommand(string.Format(query), connection);
                int result = cmd.ExecuteNonQuery();  
            }

关闭应用程序后,我右键单击items表,并'显示表数据' -没有插入。我做错了什么?

在visual Studio 2012 . sdf文件没有替换(提交)我对原始文件的更改

Visual studio可能会在bin/Debug子文件夹中创建原始解决方案项的副本(在每个构建中)。在执行代码时不会触及原始文件,并且下次构建应用程序时可能会丢弃您的更改。

因此,根据您的用例,您要么必须在bin/Debug中打开数据库以查看数据,要么更改连接字符串以使用位于项目/解决方案根目录中的连接字符串。

您在bin/debug文件夹中有一个数据库副本,其中包含正确的数据-在连接字符串中输入数据库文件的完整路径以避免混淆