C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 161 を表示中)
■93382 / )  Re[2]: 「接続文字列」を変数に格納
□投稿者/ たかし (31回)-(2019/12/09(Mon) 12:25:26)
No93381 (KOZ さん) に返信
> 2019/12/08(Sun) 22:00:04 編集(投稿者)
>
> ■No93362 (たかし さん) に返信
>><connectionStrings>
>> <add name="**********.My.MySettings.**********_SQLConnectionString"
>> connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=**********SQL;Integrated Security=True"
>> providerName="System.Data.SqlClient" />
>> </connectionStrings>
>
> System.Configuration を参照設定して
>
> Imports System.Data.Common
> Imports System.Configuration
>
> Const connectionName As String = "**********.My.MySettings.**********_SQLConnectionString"
> Dim config As ConnectionStringSettings =
> ConfigurationManager.ConnectionStrings(connectionName)
>
> としておいて
>
> Dim factory As DbProviderFactory = DbProviderFactories.GetFactory(config.ProviderName)
> Dim con As DbConnection = factory.CreateConnection()
> con.ConnectionString = config.ConnectionString
> con.Open()
>
> もしくは
>
> Dim cn As New SqlClient.SqlConnection
> cn.ConnectionString = config.ConnectionString
> cn.Open()
>
> でどうでしょうか。
>

質問の趣旨をこの辺でもう一度はっきりさせたいと思います。
「接続文字列」を変数に格納するにはどうしたらよいか?
その一点です。

変数を用いずにダイレクトに次のように記載すると正常に動きます。
cn.ConnectionString = "Data Source=(local)\SQLEXPRESS;Initial Catalog=**********SQL;Integrated Security=True"

ところが、

Dim 接続文字列 As String

接続文字列 = Form1.接続文字列TextBox.Text
cn.ConnectionString = 接続文字列

というコードではエラーになる。
これのどこが間違えているのか?
そこが知りたいのです。
ちなみにcn.Open()のエラーのメッセージは
「System.InvalidOperationException: 'ConnectionString プロパティは初期化されていません。'」
というものです。

その線でアドバイスが頂けるとありがたいです。


返信 編集キー/


管理者用

- Child Tree -