Sql server SQL Server Compact-连接到SDF数据文件
我正在Visual Studio Express 2012中创建web simple CRUD web应用程序库作为学校项目。我的灵感来自这个非常好的教程- 现在,我在连接SQL Server Compact edition.sdf数据文件时遇到问题 在web.config中,我有以下连接字符串:Sql server SQL Server Compact-连接到SDF数据文件,sql-server,Sql Server,我正在Visual Studio Express 2012中创建web simple CRUD web应用程序库作为学校项目。我的灵感来自这个非常好的教程- 现在,我在连接SQL Server Compact edition.sdf数据文件时遇到问题 在web.config中,我有以下连接字符串: <connectionStrings> <add name="LibraryEntities" connectionString="Data Source=C:\U
<connectionStrings>
<add name="LibraryEntities"
connectionString="Data Source=C:\Users\Administrator\Documents\Visual Studio 2012\Projects\2OBOP3_KU1\R10491\App_Data\R10491_library.sdf;"
providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
我创建了用于数据库连接测试的简单ASPX文件:
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["LibraryEntities"].ToString()))
{
SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM Writers", cn);
cn.Open();
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
rdr.Read();
Response.Write(rdr[0].ToString()); //read a value
}
}
</script>
运行应用程序时,它会引发异常:
异常详细信息:System.Data.SqlClient.SqlException:A
建立时发生与网络相关或特定于实例的错误
与SQL Server的连接。找不到服务器或服务器不可用
可到达的验证实例名称是否正确,以及SQL
服务器配置为允许远程连接。提供者:SQL
网络接口,错误:26-定位服务器/实例时出错
指定的
但当我尝试连接到解决方案资源管理器旁边的“数据库资源管理器”菜单的“数据库资源管理器”选项卡中的.sdf文件时,我成功连接
所以我假设连接字符串中应该有问题-不是吗?谢谢您的建议。您连接的是SQL Server Compact,而不是SQL Server 您应该使用SqlCeConnection而不是SqlConnection
此外,您还需要有对system.data.sqlserverce.dll的引用,因为您连接的是SQL Server Compact,而不是SQL Server 您应该使用SqlCeConnection而不是SqlConnection 您还需要有对system.data.sqlserverce.dll的引用
using System.Data.SqlServerCe;
protected void Page_Load(object sender, EventArgs e)
{
using (SqlCeConnection cn = new SqlCeConnection(ConfigurationManager.ConnectionStrings["LibraryEntities"].ToString()))
{
SqlCeCommand cmd = new SqlCeCommand("SELECT COUNT(*) FROM Writers", cn);
cn.Open();
SqlCeDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
rdr.Read();
Response.Write(rdr[0].ToString()); //read a value
}
}