1

私はC#の初心者です。接続文字列構成をクラスに分離するにはどうすればよいですか?

コードを書きたいと思うたびに、接続文字列を書き直して接続をテストする必要があるからです。そのため、データベースに接続するたびに、このクラスが最初に接続をテストするようにクラスを作成する必要があります。それが機能した後、クラスは接続文字列をコーディングに送信します。さらに、ソース データ を変更したい場合は、クラスのみを変更する必要があります。すべてのコーディングを検索する必要はありません

クラスを作成できる場合、クラスから接続文字列を呼び出して取得するにはどうすればよいでしょうか?

そんなことありえるの?

これは、C# での接続文字列の現在のコーディングです。

FileInfo file = new FileInfo(Application.StartupPath + "\\conn.txt");

if (file.Exists)
{
    StreamReader r = File.OpenText(Application.StartupPath + "\\conn.txt");
    connString = r.ReadToEnd();
    r.Close();

    // Open SQL connection
    SqlConnection openCon = new SqlConnection(connString);

    try
    {
        Cursor = Cursors.WaitCursor;
        openCon.Open();
    }
    catch
    {
        MessageBox.Show("Error to established connection\nPlease check Data Source");
        openCon.Close();
        Cursor = Cursors.Arrow;
    }
    else
    {
        MessageBox.Show("File config is missing");
    }
}

C#の初心者として教えていただければ幸いです。助けてくれてありがとう。そして下手な英語でごめんなさい。

4

5 に答える 5

1

接続文字列は構成ファイルに保存する必要があります。構成ファイルがない場合は、プロジェクトを右クリックして「新しいアイテムを追加しています...」を追加します。Webアプリを作成している場合は、web.configファイルになります。クライアントアプリを作成している場合は、app.configファイルになります。

connectionStringsノードの構成ファイル(通常はファイルの先頭)に接続文字列を追加します。

<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <connectionStrings>
    <!-- add a string -->
    <add name="MyConnectionString" 
         connectionString="Data Source=localhost; ... // etc 
         providerName="System.Data.SqlClient" />
  </connectionStrings>
  // and keep all the other configuration in the file

次に、クラスを使用して構成ファイルを参照するだけですConfigurationManager。System.Configurationへの参照がない場合は、追加する必要があります。

ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
于 2012-09-04T03:08:15.043 に答える
0

ここで車輪の再発明を試みています。.Net Frameworkには、これを処理するためのいくつかの簡単な手法がすでに含まれています。Windowsフォームプロジェクトを作成している場合は、属性App.Configを使用して接続文字列を保存できます。connectionStringこれがWebアプリの場合は、に保存します。次のweb.configようになります。

<connectionStrings>
      <add name="Prod" connectionString="Server=myServer;Database=DB1;user=sa;password=myPassword;Trusted_Connection=false" providerName="SQL" />
  </connectionStrings>

次に、コードで、次のようにweb.configから接続文字列を読み取ります。

string connString = System.Configuration.ConfigurationManager.
    ConnectionStrings["Prod"].ConnectionString;

あなたはここで非常に基本的な質問をしているのですが、それはあなたがc#の学習への道をいじめようとしていることを示しています。あなたへの私のアドバイスは、良いC#の本を手に入れ、それをカバーして、正しい方法で物事を学ぶことです。

于 2012-09-04T03:08:02.453 に答える
0

接続文字列を別のファイルに入れる代わりに、app.configまたはweb.configファイルに保存します。.NET構成ファイルvanには、接続文字列を保存できるセクションが含まれています。

<connectionStrings>
    <add name="myConnectionString" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>

この接続文字列は、次のコードを使用して取得できます。

string connStr = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString; 
于 2012-09-04T03:08:41.090 に答える