我在Visual Studio Express 2012中创建Web简单CRUD Web应用程序(库)作为学校项目。我受到这个非常好的教程的启发 - http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-1
现在我遇到连接到SQL Server Compact Edition .sdf
数据文件的问题。
在web.config
我有这个连接字符串:
<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 - 查找服务器/实例时出错 指定)
但是当我尝试连接到“Database Explorer”菜单(“Solution explorer”旁边)的“Database explorer”选项卡中的.sdf
文件时,我连接成功。
所以我假设连接字符串应该有问题 - 不是吗?谢谢你的建议。
答案 0 :(得分:4)
您正在连接到SQL Server Compact而不是SQL Server。
您应该使用SqlCeConnection
而不是SqlConnection
。
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
}
}
您还需要引用system.data.sqlserverce.dll