c# - 基于服务的数据库

标签 c# database windows winforms

我需要存储 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 - 我几乎可以肯定你的数据就在那里。

在我看来真正的解决方案

  1. 安装 SQL Server Express(无论如何您已经完成了)

  2. 安装 SQL Server Management Studio Express

  3. SSMS Express 中创建您的数据库,为其指定一个合乎逻辑的名称(例如 YourDatabase)

  4. 使用它的逻辑数据库名称(当您在服务器上创建它时给定的)连接到它 - 不要弄乱物理数据库文件和用户实例。在这种情况下,您的连接字符串将类似于:

    Data Source=.\\SQLEXPRESS;Database=YourDatabase;Integrated Security=True
    

    其他一切都完全和以前一样...

关于c# - 基于服务的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14182400/

相关文章:

c# - 在运行时从 txt 文件更新文本框而不单击 "refresh"

c# - SQLite 与 Web 服务 c#

php - 从数据库检索到错误数据

database - 比较 Access SQL 查询中的日期

c - x64 Windows下的快速光纤/协程

windows - 诊断 Windows 应用程序 list

Java: System.getenv ("APPDATA") 返回 null,现在怎么办?

c# - 用于注册设备并接收通知的 Azure 通知中心示例

c# - XmlReader/Writer 给出结束元素的错误

mysql - 当我在两个表上执行 'select' 查询时,它会呈现表内的所有元素