Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';无法在桌面应用程序中访问mdf文件_C#_Sql Server_Wpf - Fatal编程技术网

C# Can';无法在桌面应用程序中访问mdf文件

C# Can';无法在桌面应用程序中访问mdf文件,c#,sql-server,wpf,C#,Sql Server,Wpf,我需要你的帮助。。也许这是我无法解决的小任务,但我不知道如何在任何搜索引擎上搜索它 我正在WPF登录注册桌面应用程序中使用.mdf文件(vs 2103)。。一切正常,没有编译错误。我在VisualStudio中使用query将一些数据插入到.mdf文件中,然后尝试通过应用程序登录,它工作正常。此外,如果我使用.mdf文件的“绝对路径”,我还可以注册,即从应用程序的注册选项插入.mdf文件。当我尝试使用“相对路径”插入.mdf文件时,问题就出现了。。。它不会将数据插入.mdf…我不知道为什么 (此

我需要你的帮助。。也许这是我无法解决的小任务,但我不知道如何在任何搜索引擎上搜索它

我正在WPF登录注册桌面应用程序中使用
.mdf
文件(vs 2103)。。一切正常,没有编译错误。我在VisualStudio中使用query将一些数据插入到
.mdf
文件中,然后尝试通过应用程序登录,它工作正常。此外,如果我使用
.mdf
文件的“绝对路径”,我还可以注册,即从应用程序的注册选项插入
.mdf
文件。当我尝试使用“相对路径”插入
.mdf
文件时,问题就出现了。。。它不会将数据插入
.mdf
…我不知道为什么

(此绝对路径不起作用。我在数据库文件夹中有
.mdf
文件)

它显示消息“您已注册”

但在.mdf文件中不可见。。。 我想问…为什么会这样…我想使用相对路径,因为我们无法判断客户端系统的绝对路径…我犯了什么错误?如何处理这个(我想是自己造成的)问题?

整个AttachDbFileName=方法都有缺陷——最多!在Visual Studio中运行应用程序时,它将围绕
.mdf
文件进行复制(从
app\u Data
目录复制到输出目录-通常是
\bin\debug
-应用程序运行的地方)和最有可能是,您的
INSERT
工作正常-但您最后看到的是错误的.mdf文件

如果您想继续使用这种方法,请尝试在
myConnection.Close()
调用上放置一个断点,然后使用SQL Server Mgmt Studio Express检查
.mdf
文件,我几乎可以肯定您的数据在那里

我认为真正的解决办法是

  • 安装SQL Server Express(您已经完成了安装)

  • 安装SQL Server Management Studio Express

  • 在SSMS Express中创建数据库,并为其指定一个逻辑名称(例如,
    MyDatabase

  • 使用其逻辑数据库名称连接到它(在服务器上创建时提供),不要乱动物理数据库文件和用户实例。在这种情况下,您的连接字符串类似于:

    Data Source=.\\SQLEXPRESS;Database=MyDatabase;Integrated Security=True
    
    其他一切都和以前一样


  • 另请参阅Aaron Bertrand优秀的博客文章,以获得更深入的解释和提示

    感谢您的快速回复。…如果我使用ssms,一切都很好,但为什么不使用.mdf。…我不想在客户端系统上安装ssms,因此我必须使用.mdf文件(如果我错了,请纠正我的错误想法)... 正如您所说的“您最终只是查看了错误的.mdf文件!”…那么我必须查找哪个mdf?bin\debug\\Database\Database1.mdf???@Mrspider94:是,如果在
    AttachDbFileName=
    中使用相对路径,然后Visual Studio将围绕
    .mdf
    文件进行复制-这是一个真正的混乱,是许多混乱和悲伤的来源,如果您将数据库放在第一个plcaeOpes中它所属的服务器上,您可以省去这些混乱和悲伤:(如果我不想在我的客户机上安装sql server express,该怎么办?…在有限的时间内保留数据的任何替代品…然后将其更新到远程sql server,因为我不想在远程sql server上实时插入数据(考虑到网络问题)我有很多关于库存管理系统的困惑…如果你允许我的话,我想得到更多sugestions@Mrspider94:如果要使用
    .mdf
    ,则必须安装SQL Server Express-如果至少没有SQL Server Express,则无法使用
    .mdf
    。好的,您知道了,但仍然不知道该怎么做…如果我不知道该用什么希望我的客户另外安装任何软件…为简单起见,假设是一个小场景…如果我想开发一个需要多次注册的应用程序,并且需要在应用程序中保存该用户的记录,我应该使用什么?我希望强制用户安装sql server不是一个好的做法,那么应该怎么做我使用该应用程序,因此用户只需安装我的应用程序,无需其他任何操作…这可能是一个愚蠢的问题,但我无法在谷歌上搜索此应用程序,或者可能是b我不知道如何搜索:/
    Data Source=.\\SQLEXPRESS;Database=MyDatabase;Integrated Security=True