【发布时间】:2013-01-16 11:50:40
【问题描述】:
我正在使用 Visual Studio 2012 创建一个 MVC4 Internet 应用程序。我已从 Entity Framework 移出,现在使用本地安装的 SQL Server 2008 R2。
我将连接字符串更改为指向我的本地 SQL Server 实例:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=.;Initial Catalog=NotesBoard;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
我的项目中没有其他连接字符串。这工作正常,但现在我得到了
在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)
说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
SQLExpress 数据库文件自动创建错误:
连接字符串指定了一个本地 Sql Server Express 实例...
奇怪的是,它会间歇性地工作,然后又回到它的损坏状态。
更新:回答Pawel的问题: 我的所有控制器都引用了以下类:
public class DataAccess
{
public void ExecuteNonQuery(String StoredProc, List<SqlParameter> Parameters)
{
String ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString();
SqlConnection cn = new SqlConnection(ConnectionString);
SqlCommand cm = new SqlCommand(StoredProc, cn);
cm.CommandType = CommandType.StoredProcedure;
FillCommandParameters(Parameters, cm);
cn.Open();
cm.ExecuteNonQuery();
cn.Close();
}
public DataSet Execute(String StoredProc, List<SqlParameter> Parameters = null)
{
String ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString();
SqlConnection cn = new SqlConnection(ConnectionString);
SqlCommand cm = new SqlCommand(StoredProc, cn);
cm.CommandType = CommandType.StoredProcedure;
FillCommandParameters(Parameters, cm);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cm;
DataSet ds = new DataSet();
cn.Open();
da.Fill(ds);
cn.Close();
return ds;
}
private static void FillCommandParameters(List<SqlParameter> Parameters, SqlCommand cm)
{
if (Parameters != null)
{
if (Parameters.Count > 0)
{
foreach (var Parameter in Parameters)
{
cm.Parameters.Add(Parameter);
}
}
}
}
}
【问题讨论】:
-
I've moved away from Entity Framework是什么意思? -
IE我没有使用实体框架,而是选择编写我自己的数据访问类(而不是自动生成的上下文类)和存储过程,以便我可以在符合我的模型的 SQL 中手动设置表和存储过程。 (我没有为配置文件提供者这样做,但它使用的是 DefaultConnection。)
-
堆栈跟踪是什么——它会显示你是否真的来自实体框架的
moved away。你如何使用DefaultConnection(即如何打开连接并传递连接字符串)?
标签: entity-framework asp.net-mvc-4 sql-server-2008-r2 sql-server-express iis-express