ASP.NETでSQL SERVERへの接続文字列を設定する


96

ローカルサーバー(SQLサーバー2008)への接続文字列をweb.configファイル(Visual Studio 2008 / ASP.NET 3.5)で設定しようとしています。

私のweb.configで、接続文字列をどこにどのように配置しますか?

現在、web.configファイルは次のようになっています。http//imwired.net/aspnet/Online_web.config

回答:


148

これを使用することもできます。より簡単です。設定する必要があるのは「YourDataBaseName」だけです。

  <connectionStrings>
    <add name="ConnStringDb1" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
  </connectionStrings>

接続文字列を配置する場所

<?xml version='1.0' encoding='utf-8'?>  
  <configuration>  
    <connectionStrings>  
      <clear />  
      <add name="Name"   
       providerName="System.Data.ProviderName"   
       connectionString="Valid Connection String;" />  
    </connectionStrings>  
  </configuration>  

クエリを実行したいときに、C#コードビハインドでそれを使用する方法。
Nikhil Tamhankar、2011

1
あなたはからドットネット内の接続文字列についての詳細情報を見ることができます:connectionstrings.com/sql-server-2008
ビマルBhattさん

4
何人の人がその行をコピーして貼り付けたのでしょうか。
Ayo Adesina 2015年

このバージョンには、ユーザー名/パスワード属性がありません。
ブルギ

@Burgiいいえ、それが欠落していない(Integrated Security=True?を参照)、データベースは権限によってファイルを読み取るため、必要ありません-試してください。これは、追加する必要がないため、より簡単だと私が言う理由です。それを使用できない場合は、データベースを開いて、データベースとファイルに対して適切な権限を設定してください
Aristos

107

どういうわけか、ここでは簡単な答えがわかりません。

これをコードの一番上に置きます:

using System.Web.Configuration;
using System.Data.SqlClient; 

これをWeb.Configに入れます。

<connectionStrings >
    <add
         name="myConnectionString" 
         connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;"
         providerName="System.Data.SqlClient"/>
</connectionStrings>

接続変数を設定する場所:

SqlConnection con = new SqlConnection(
    WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);

5
WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionStringより技術的に正しいかもしれません。
ときめき

2
私も必要です:using System.Data.SqlClient;
nu everest

21

答えを得るのが非常に難しいことがわかりましたが、最終的にはわかりました。だから私は以下のステップを書きます。

  1. コードで接続文字列を設定する前に、実際にデータベースにアクセスできることを確認してください。SSMS(Sql Server Management Studioまたは他のデータベースでは同等のもの)を使用してデータベースサーバーにローカルでログインし、使用する詳細を使用してアクセスできることを確認してください。

  2. 次に(必要な場合)、別のサーバー上のデータベースにアクセスしようとしている場合は、SSMSでも同様にアクセスできることを確認します。そのため、コンピューターにSSMSをセットアップし、そのデータベースサーバーへのユーザー名とパスワードを使用してサーバーにアクセスできることを確認します。

上記の2つが正しくない場合は、データベースにアクセスできないため、時間を浪費しているだけです。これは、セットアップしたユーザーが間違っている、リモートアクセスが有効になっていない(必要な場合)、またはポートが開いていない(必要な場合)などの理由が考えられますが、これらが最も一般的です。

SSMSを使用してデータベースにアクセスできることを確認したら、次のステップは、プロセスを自動化して間違いを回避するためだけに、システムに作業を任せることです。

  1. 空のプロジェクトを開始し、Linqの選択をSQLまたはデータセットに追加します(EFは良好ですが、接続文字列はEF con文字列の中に埋め込まれています。クリーンな文字列が必要です)。上記で確認した詳細を使用してデータベースに接続します。コンストリングウィザード。テーブルを追加してファイルを保存します。

次に、Web設定に移動すると、魔法のように、必要なすべての詳細を含む、正常に機能する接続文字列が表示されます。


{以下は古い投稿の一部でしたので、これは無視してかまいません。コードビハインドのみからデータベースにアクセスするための最も基本的な方法として参照用に残しておきます。下にスクロールして、以下のステップ2から続行してください。}

上記の手順が、コードビハインドの接続文字列として次のようなものから始まると仮定しましょう。

string conString = "Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;";

このステップは非常に重要です。次の手順を実行する前に、上記の形式の接続文字列が機能していることを確認してください。これは、接続文字列を作成する最も簡単な方法であるため、ラベルまたはテキストボスなどのテーブルのデータを表示するSQLコマンドテキストの形式を使用して、実際にデータにアクセスできることを確認してください。

上記のスタイルが機能することを確認したら、次のステップを実行します。

1.文字列リテラル(引用符を含む引用符内のもの)をweb.configファイルの次のセクションにエクスポートします(複数の接続文字列の場合は、複数の行を実行します:

<configuration>
    <connectionStrings>
        <add name="conString" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
        <add name="conString2" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
        <add name="conString3" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

{上記は古い投稿の一部でした。上位3つのステップを実行すると、このプロセス全体が実行されるため、無視できます。自分の参照用にここに置いておきます。}


2.次に、次のコード行を後ろのC#コードに追加します。おそらくクラス定義のすぐ下(つまり、メソッド内ではない)に追加します。これは、プロジェクトのルートフォルダーを指します。基本的にはプロジェクト名です。これは通常、web.configファイルの場所です(この場合、私のプロジェクトはMyProjectと呼ばれます)。

static Configuration rootWebConfig = WebConfigurationManager.OpenWebConfiguration("/MyProject");

3.次のコード行をC#コードビハインドに追加します。これにより、さまざまなメソッドでconStringが必要になった場合に、コード全体のさまざまな場所で参照できる文字列定数が設定されます。

const string CONSTRINGNAME = "conString";

4.次に、次のコード行をC#コードビハインドに追加します。これは、conStringという名前のweb.configファイルから接続文字列を取得します(上記の定数から)

ConnectionStringSettings conString = rootWebConfig.ConnectionStrings.ConnectionStrings[CONSTRINGNAME];

5.最後に、元々は次のコード行に似たものがあったはずです。

SqlConnection con = new SqlConnection(conString)

次のコード行に置き換えます。

SqlConnection con = new SqlConnection(conString.ConnectionString)

これらの5つのステップを実行すると、コードは以前と同じように機能するはずです。最初にconstringを元の形式でテストする理由を明確にして、接続文字列に問題があるのか​​、コードに問題があるのか​​を確認します。

私はC#、ASP.Net、およびSQL Serverを初めて使用します。したがって、このコードを実行するためのより良い方法があるはずだと確信しています。また、可能であれば、これらの手順を改善する方法についてフィードバックをします。私はこのようなものを探し回っていましたが、何週間ものハードワークの後で結局それを理解しました。それを自分で見ても、もっと簡単な方法があるに違いないと私はまだ思います。

これがお役に立てば幸いです。


14

<configuration>ノード内にある必要があります。

  <connectionStrings >
    <add name="myconnectionstring" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

このサイトにはそれに関する詳細があります:


1
asp.net 4でクエリを実行したいときに、C#コードビハインドでそれを使用する方法
Nikhil Tamhankar

7

WebConfigでの接続

ファイル内の<connectionStrings>要素に接続文字列を追加しますWeb.config

<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"   providerName="System.Data.SqlClient" />
</connectionStrings>

Class.Cs内

public static string ConnectionString{
get{
return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;}
set{}

6

ヘッダー内

using System.Configuration;

コードで

SqlConnection conn = new SqlConnection(*ConfigurationManager.ConnectionStrings["connstrname"].ConnectionString*);

3

外部構成ファイルを使用して接続文字列セクションを指定し、次のようにアプリケーション構成ファイルでそのファイルを参照することもできます web.config

以下のようにweb.configファイル:

<configuration>  
    <connectionStrings configSource="connections.config"/>  
</configuration>  

外部構成connections.configファイルには接続セクションが含まれます

<connectionStrings>  
  <add name="Name"   
   providerName="System.Data.ProviderName"   
   connectionString="Valid Connection String;" />  

</connectionStrings>  

外部構成ファイルの内容を変更してもアプリケーションは再起動しません(ASP.netはデフォルトでアプリケーション構成ファイルに変更があるため)


2

Web.configに接続文字列を書き込む場合は、指定された文字列の下に書き込みます

<connectionStrings>
  <add name="Conn" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"
   providerName="System.Data.SqlClient" />
 </connectionStrings>

または

あなたはaspx.csファイルのように

SqlConnection conn = new SqlConnection("Data Source=12.16.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com");

2

これをweb.configファイルに入れることができますconnectionStrings

<add name="myConnectionString" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>

2

次の形式を使用できます。

  <connectionStrings>
    <add name="ConStringBDName" connectionString="Data Source=serverpath;Initial Catalog=YourDataBaseName;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
  </connectionStrings>

ほとんどの場合、後にweb.configでconnectionstringタグをfingします <appSettings>

これを試してみてください。


1

これを試すことができます。とてもシンプルです

<connectionStrings>         
    <add name="conString" connectionString="Data Source=SQLServerAddress;Initial Catalog=YourDatabaseName; User Id=SQLServerLoginId; Password=SQLServerPassword"/>
</connectionStrings>

OPは「web.configのどこに」と尋ねました。
Steve Smith

0

接続文字列にこれを試してください。

 Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
 User ID=myDomain\myUsername;Password=myPassword;

Stack Overflowへようこそ!古い質問への回答を投稿するときは、なぜあなたの回答が古いものよりも優れているのかについて、いくつかのコンテキストを追加することをお勧めします。そうしないと、回答リストの下部で見落とされる危険があります。
Monolo 2013

0

見つけただけ!! この文字列接続を配置し、データベースを直接指す必要があります。サーバーで同じケース。

"Provider=Microsoft.ACE.OLEDB.12.0; 
 Data Source=c:/inetpub/wwwroot/TEST/data/data.mdb;"

できます!!:)



-1

で呼び出されるセクションを作成<connectionStrings></connectionStrings>しますweb.config内部で<configuration></configuration>それに異なる接続文字列を追加たとえば、

<configuration>

  <connectionStrings>
   <add name="ConnectionStringName" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True"/>
  </connectionStrings>

</configuration>

ここにすべての異なる接続文字列形式のリストがありますhttps://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx


「web.configに<connectionStrings> </ connectionStrings>というセクションを作成します」-web.configのどこに?
Steve Smith

「設定」タグを、より多くの情報の子供docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/...
ガイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.