データベースへの接続とデータの取得を行うには?


まるちーず  2008-01-07 11:57:32  No: 144237  IP: 192.*.*.*

VB2005とSQLServer2005を使用してデータベースの使用を勉強しています。

フォーム上でボタンを押下した時に、作成したデータベースに接続してSELECT参照をするプログラムを作成しようとしているのですが、接続の確認だけするように以下のプログラムを作成・実行したところ、
hConnection.Open()
の箇所でエラーが起きてしまいました。
修正方法がわからないため、ご指導頂きたいと思います。
なお、ConnectionStringにセットしている文字列は、新しいデータソースの追加で設定し接続を確認した、接続文字列をセットしています。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 Dim ConnectionString As String = String.Empty
 Dim Connection As New System.Data.SqlClient.SqlConnection(ConnectionString)

 ConnectionString = ConnectionString & "Data Source=*****;"
 ConnectionString = ConnectionString & "Initial Catalog=*****;"
 ConnectionString = ConnectionString & "Persist Security Info=*****;"
 ConnectionString = ConnectionString & "User ID=*****"

 hConnection.Open()

 MessageBox.Show("接続OK")

 hConnection.Close()
 hConnection.Dispose()

End Sub

編集 削除
YuO  2008-01-07 12:59:48  No: 144238  IP: 192.*.*.*

hConnectionって何でしょうか。

でもって,ConnectionStringへ追加していますが,
ConnectionはNewしたタイミングでのConnectionStringを元に作られるので,
ConnectionStringへの追加は無意味です。
Newするより前にConnectionStringを作成する必要があります。

ちなみに,接続文字列の作成については
System.Data.SqlClient.SqlConnectionBuilder
クラスの存在も知っておくと良いかと。

編集 削除
特攻隊長まるるう  2008-01-07 14:03:56  No: 144239  IP: 192.*.*.*

>Newするより前にConnectionStringを作成する必要があります。
もしくは、後から
[SqlConnection.ConnectionString プロパティ]
http://msdn2.microsoft.com/ja-jp/library/system.data.sqlclient.sqlconnection.connectionstring(VS.80).aspx
を設定するとか。

逆にこのプロパティの値を出力すれば、
> ConnectionString = ConnectionString & "Data Source=*****;"
> ConnectionString = ConnectionString & "Initial Catalog=*****;"
> ConnectionString = ConnectionString & "Persist Security Info=*****;"
> ConnectionString = ConnectionString & "User ID=*****"
の操作が意味が無い操作になってしまっていることを確認できます。

>の箇所でエラーが起きてしまいました。
エラーメッセージを忘れずに書いてください。
今回のサンプルコードでは、変数宣言では Connection、実際に使用しているのは
hConnection ということで、『hConnection は宣言されていません』というコンパイル
エラーがまず出ます。そうなってくると話が変わってきてしまいます。

編集 削除