Visual Studio 2012 を使用して MVC4 インターネット アプリケーションを作成しています。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);
}
}
}
}
}