2011-05-11 12 views
4

データベース接続に問題があります。 私は新しい空白の解決策から始めました。その後、WCFライブラリプロジェクトを追加しました.WCFウェブサイト(サービス)の最後の重要なものです。 ウェブサイトでは、私はインターフェイス(データコントラクト)を持っているライブラリへのリファレンスを追加しました、インターフェイスとデータスクラップを実装するクラス。 私がやろうとしていることは、サーバー上のデータベースに接続してそこからいくつかのデータを取得しようとすることです。 ので、接続文字列は次のようになります。データベースサーバーに接続できません

<add name="myConnectionString" connectionString="Data Source=MyServer; Initial Catalog=MyDatabase; User Id=me; Password=me123;" providerName="System.Data.SqlClient" /> 

、これは私がデータベースに接続しようとしている方法です:

public List<string> GetEngagements(string id) 
    { 
     string sql = "SELECT myColumn FROM myTable WHERE Id = '" + id + "'"; 
     string connString = string.Empty; 
     SqlConnection connDB; 
     connString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString; 
     connDB = new SqlConnection(connString); 
     SqlCommand command = new SqlCommand(sql, connDB); 
     connDB.Open(); 
     SqlDataReader rdr = command.ExecuteReader(); 
     List<string> numbers = new List<string>(); 

     while (rdr.Read()) 
     { 
      numbers.Add(rdr[0].ToString()); 
     } 
     rdr.Close(); 

     return numbers; 
    } 

I)がconnDB.Open(上の例外を取得しています。 例外メッセージ: ユーザーインスタンスのプロセスの開始に失敗したためにSQL Serverのユーザーインスタンスを生成できませんでした。接続が閉じられます。

私は2日間このメッセージを受け取りました。たくさんのGoogle検索を行い、C:¥Documents and Settings¥username¥Local Settings¥Application Data¥Microsoft¥Microsoft SQL Server Data¥SQLEXPRESSディレクトリを削除しました。それは私のために動作しませんでした..

任意の解決????助けてください

+0

コントロールパネル>管理ツール>サービスに入ると、SQL Server Expressが表示されます。それは始まったのですか?時には、それはまったく簡単なものです、すべての楽しい楽しみです:) –

答えて

2

エラーメッセージ:

が原因のユーザーインスタンスのプロセスを起動中のエラーにより、SQL Serverのユーザーインスタンスを生成できませんでした。

あなたはユーザーインスタンスを使用しているので、接続文字列は、ディスク上の.mdfファイルではなく、データベースの名前を指しますことを示唆しています。

したがって、サーバーインスタンスではなくファイルインスタンスに接続するとします。

また、私はあなたがフルバージョンではなくSqlExpressを使用していると仮定します。

接続文字列が間違っています。これは、より次のようになります。

"Data Source=.\SQLEXPRESS; 
AttachDbFilename=fileOnDisk.mdf; 
Integrated Security=True; 
User Instance=True;" 

ユーザーインスタンスは、このサーバインスタンスと内部のDBにのみ接続文字列を開くアプリケーションに表示されることを意味します。

ユーザーインスタンスを使用する必要はありません。User Instance=Falseを設定するか、そのまま使用してください。その後、アプリケーションが接続を確立したら、他のツールをサーバーインスタンスに接続し、DBに自分で接続することができます。

+0

私は探している答えに非常に近い私が助けてくれてありがとう多くありがとう... – NewB

関連する問題