如何从 .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?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Active Directory 服务帐户从 .NET 连接到 SQL Server
无法从 ASP.NET Web 应用程序连接到我的 SQL Server Express
无法从在 Docker (Linux) 中运行的 ASP.NET Core 连接到 SQL Server 命名实例