ローカルサーバー(SQLサーバー2008)への接続文字列をweb.configファイル(Visual Studio 2008 / ASP.NET 3.5)で設定しようとしています。
私のweb.configで、接続文字列をどこにどのように配置しますか?
現在、web.configファイルは次のようになっています。http://imwired.net/aspnet/Online_web.config
ローカルサーバー(SQLサーバー2008)への接続文字列をweb.configファイル(Visual Studio 2008 / ASP.NET 3.5)で設定しようとしています。
私のweb.configで、接続文字列をどこにどのように配置しますか?
現在、web.configファイルは次のようになっています。http://imwired.net/aspnet/Online_web.config
回答:
これを使用することもできます。より簡単です。設定する必要があるのは「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>
Integrated Security=True
?を参照)、データベースは権限によってファイルを読み取るため、必要ありません-試してください。これは、追加する必要がないため、より簡単だと私が言う理由です。それを使用できない場合は、データベースを開いて、データベースとファイルに対して適切な権限を設定してください
どういうわけか、ここでは簡単な答えがわかりません。
これをコードの一番上に置きます:
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);
WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString
より技術的に正しいかもしれません。
using System.Data.SqlClient;
答えを得るのが非常に難しいことがわかりましたが、最終的にはわかりました。だから私は以下のステップを書きます。
コードで接続文字列を設定する前に、実際にデータベースにアクセスできることを確認してください。SSMS(Sql Server Management Studioまたは他のデータベースでは同等のもの)を使用してデータベースサーバーにローカルでログインし、使用する詳細を使用してアクセスできることを確認してください。
次に(必要な場合)、別のサーバー上のデータベースにアクセスしようとしている場合は、SSMSでも同様にアクセスできることを確認します。そのため、コンピューターにSSMSをセットアップし、そのデータベースサーバーへのユーザー名とパスワードを使用してサーバーにアクセスできることを確認します。
上記の2つが正しくない場合は、データベースにアクセスできないため、時間を浪費しているだけです。これは、セットアップしたユーザーが間違っている、リモートアクセスが有効になっていない(必要な場合)、またはポートが開いていない(必要な場合)などの理由が考えられますが、これらが最も一般的です。
SSMSを使用してデータベースにアクセスできることを確認したら、次のステップは、プロセスを自動化して間違いを回避するためだけに、システムに作業を任せることです。
次に、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を初めて使用します。したがって、このコードを実行するためのより良い方法があるはずだと確信しています。また、可能であれば、これらの手順を改善する方法についてフィードバックをします。私はこのようなものを探し回っていましたが、何週間ものハードワークの後で結局それを理解しました。それを自分で見ても、もっと簡単な方法があるに違いないと私はまだ思います。
これがお役に立てば幸いです。
<configuration>
ノード内にある必要があります。
<connectionStrings >
<add name="myconnectionstring" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>
</connectionStrings>
このサイトにはそれに関する詳細があります:
ファイル内の<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>
public static string ConnectionString{
get{
return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;}
set{}
ヘッダー内
using System.Configuration;
コードで
SqlConnection conn = new SqlConnection(*ConfigurationManager.ConnectionStrings["connstrname"].ConnectionString*);
外部構成ファイルを使用して接続文字列セクションを指定し、次のようにアプリケーション構成ファイルでそのファイルを参照することもできます 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はデフォルトでアプリケーション構成ファイルに変更があるため)
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");
次の形式を使用できます。
<connectionStrings>
<add name="ConStringBDName" connectionString="Data Source=serverpath;Initial Catalog=YourDataBaseName;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
ほとんどの場合、後にweb.configでconnectionstringタグをfingします <appSettings>
これを試してみてください。
これを試すことができます。とてもシンプルです
<connectionStrings>
<add name="conString" connectionString="Data Source=SQLServerAddress;Initial Catalog=YourDatabaseName; User Id=SQLServerLoginId; Password=SQLServerPassword"/>
</connectionStrings>
接続文字列にこれを試してください。
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
User ID=myDomain\myUsername;Password=myPassword;
接続文字列をweb.configに保存する
アプリケーションの接続文字列を、コードにハードコードされた文字列としてではなく、構成ファイルに格納することをお勧めします。これを行う方法は、.NET 2.0と.NET 3.5(およびそれ以降)では異なります。この記事では両方について説明します。 https://www.connectionstrings.com/store-connection-string-in-webconfig/
で呼び出されるセクションを作成<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