2017-02-06 9 views
0

申し訳ありませんが、私はWindowsサービスアプリケーションが初めてです。私は、SQLステートメントを実行するVisual Studio 2012でC#を使用してWindowsサービスアプリケーションを作成しようとしています。私は、SQL文がサーバと通信するためにweb.configファイルに接続文字列を入力する必要があるという印象を受けました。しかし、サービスアプリケーションにはweb.configファイルはありません。これをどうやって行うのですか?チュートリアルやチュートリアルへのリンクは、それだけでは分かります!私はプロジェクトの構造と、私のアプリケーションが正しく機能するために必要なことを知りたい。SQL操作を実行するビジュアルスタジオのWindowsサービスアプリケーションを作成します。

また、複数のサーバーで実行する必要のあるSQLクエリがあります。 3つの異なるサーバーで同じクエリが実行されます。 3つの接続文字列を作成して3つのサーバーに接続し、それを実行する方法はありますか?

+2

一切web.configファイルはありませんが、app.configを –

+0

@PaulAbbottああがあります。うん、私は気付いたが、接続文字列がapp.configに入ることは知らなかった。これはかなり新しいです。 –

+0

はい。 app.configはほとんど同じことです。 –

答えて

0

まず、すべてのアプリケーションにweb.configまたはapp.configのいずれかが含まれています。 MVCアプリケーションまたはWebフォームアプリケーションを作成する場合は、web.configファイルがあります。 WindowsサービスまたはWindowsコンソールまたはデスクトップアプリケーションを作成する場合は、代わりにapp.configファイルが必要です。

SQL Serverに接続するのはかなり簡単な作業です。 SqlConnectionを使用して接続を作成するだけです。次に、SqlCommandを作成します。最後に、SQLクエリを実行することができます。最初の例あなたは何もデータを返さないクエリを実行している場合

public void DeleteRow() 
{ 
    using (var connection = new SqlConnection("your connection string here...")) 
    { 
     using (var command = new SqlCommand()) 
     { 
      command.Connection = connection; 
      // Next command is your query. 
      command.CommandText = "DELETE FROM Customers WHERE CustomerId = 1"; 
      command.CommandType = CommandType.Text; 

      connection.Open(); 
      command.ExecuteNonQuery(); 
     } 
    } 
} 

使用:ここで

は一例です。あなたはデータを返すために必要がある場合は、次のように例を使用します。

public void GetCustomer() 
{ 
    using (var connection = new SqlConnection("your connection string here...")) 
    { 
     using (var command = new SqlCommand()) 
     { 
      SqlDataReader reader; 

      command.Connection = connection; 
      // Next command is your query. 
      command.CommandText = "SELECT * FROM Customers WHERE CustomerId = 1"; 
      command.CommandType = CommandType.Text; 

      connection.Open(); 

      reader = cmd.ExecuteReader(); 
      // Data is accessible through the DataReader object here.     
     } 
    } 
} 
+0

ありがとうございます。複数のサーバーと通信するSQLクエリを実行する場合、複数の接続文字列で処理する必要があります。 –

+0

はい。あなたはあなたが好きなだけ多くを持つことができます。 – Icemanind

関連する問題