如何从 .NET 应用程序连接到 SQL Server Compact?

Posted

技术标签:

【中文标题】如何从 .NET 应用程序连接到 SQL Server Compact?【英文标题】:How to connect to a SQL Server Compact from a .NET application? 【发布时间】:2010-06-27 10:59:27 【问题描述】:

我想创建一个使用本地数据库的 WPF 应用程序。我创建了一个简单的数据库并添加了它,这样我就可以在我的解决方案资源管理器中看到我的数据库NameDB.sdf

如何从我的应用程序连接到它?

我尝试了一个空应用程序,它只是尝试连接到数据库:

...
using System.Data.SqlServerCe;
using System.Data;

public partial class MainWindow : Window

    public MainWindow()
    
        InitializeComponent();

        SqlCeConnection connection =
            new SqlCeConnection(@"Data Source=|DataDirectory|\NameDB.sdf");
        SqlCeCommand command = new SqlCeCommand("SELECT * FROM Names");
        SqlCeDataAdapter dataAdapter = new SqlCeDataAdapter(command);
        DataSet ds = new DataSet();
        dataAdapter.Fill(ds);
        Console.WriteLine("Done");
    

但我收到XamlParseException 这条消息:

'调用与指定绑定约束匹配的类型'WpfDBApp.MainWindow'的构造函数引发异常。行号“3”和行位置“9”。

我的连接字符串是@"Data Source=|DataDirectory|\NameDB.sdf",因为我想使用“本地”路径而不是完整路径。这取自我在下面链接的教程。

如何创建一个连接到本地数据库的简单应用程序?

我曾尝试关注SQL Server 2005 Compact Edition Data Access with the SqlCeResultSet and Visual C#.NET,但似乎与Visual Studio 2010 and WPF 的方式不同。

【问题讨论】:

【参考方案1】:

你没有初始化你的连接。

SqlCeCommand command = new SqlCeCommand("SELECT * FROM Names", connection);

立即尝试。

【讨论】:

【参考方案2】:

问题在于您的连接字符串。格式应为“Data Source="FullPath to YourDatabase.sdf"

查看this MSDN example了解更多详情

【讨论】:

我不想使用 FullPath,我想使用本地路径。我已将连接字符串更改为new SqlCeConnection(@"Data Source=|DataDirectory|\NameDB.sdf");,但它不起作用。 "You can't get there from here"... 您必须使用完整路径,因为 SQL 服务器没有在您的应用程序上下文中运行,并且不知道本地目录.你必须挖掘出完整的路径。

以上是关于如何从 .NET 应用程序连接到 SQL Server Compact?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 C# 连接到 SQL 数据库?

使用 Active Directory 服务帐户从 .NET 连接到 SQL Server

无法从 ASP.NET Web 应用程序连接到我的 SQL Server Express

无法从在 Docker (Linux) 中运行的 ASP.NET Core 连接到 SQL Server 命名实例

从 VB.net 连接到 SQL 数据库时,“行/列不存在数据”

从 linux 的 dot net core 连接到远程 sql server 有时会失败,然后开始随机工作