我需要存储 C# 窗口窗体应用程序生成的数据。我使用基于服务的数据库并创建了我需要的表,然后我使用 linq 在这些表中插入值。我实际上是通过使用它保存了我的数据,调试后我发现所有数据都被删除了。我找不到我在运行时给出的值。任何人都可以帮我解决它吗?我需要一个本地数据库来保存我的数据,我正在创建在我的客户端系统中不使用 SQL SERVER 的 win 表单应用程序。
最佳答案
整个 User Instance 和 AttachDbFileName= 方法是有缺陷的 - 充其量!在 Visual Studio 中运行您的应用程序时,它将复制 .mdf
文件(从您的 App_Data
目录到输出目录 - 通常是 .\bin\debug
- 你的应用程序运行的地方)并且很可能,你的INSERT
工作得很好 - 但你只是在看错误的 .mdf 文件 最后!
如果您想坚持使用这种方法,请尝试在 myConnection.Close()
调用上放置一个断点 - 然后使用 SQL Server 检查 .mdf
文件Mgmt Studio Express - 我几乎可以肯定你的数据就在那里。
在我看来真正的解决方案是
安装 SQL Server Express(无论如何您已经完成了)
安装 SQL Server Management Studio Express
在 SSMS Express 中创建您的数据库,为其指定一个合乎逻辑的名称(例如
YourDatabase
)使用它的逻辑数据库名称(当您在服务器上创建它时给定的)连接到它 - 不要弄乱物理数据库文件和用户实例。在这种情况下,您的连接字符串将类似于:
Data Source=.\\SQLEXPRESS;Database=YourDatabase;Integrated Security=True
其他一切都完全和以前一样...
关于c# - 基于服务的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14182400/