- ベストアンサー
VB.NETでSQL-SERVERにクエリを発行する方法
OleDbDataAdapterを使って接続はできるのですがいまいちです。 textbox1にsql文を書いてtextbox2にその結果を表示するだけでいいので 方法を教えてください。 select * from stock; という具合でtext2に結果表示していです。 できればリストビューに表示したいのですが。 グリッド?を使った表示はできたのですが、これだと ほしいものが作れないので。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
私の知っているやりかたでよければご参考までに。 VB.net とういうことなので dataset か datareader だと思います。 表示するだけということなのでdatareader を使うことにします。 データベースへのコネクションは既にあるとして データコマンド oledatacommandを ツールボックスから持ってきます。 データコマンドの設定でデータベースへのコネクションを設定します。 textbox1 に select カラム1 from stock と入力します。 'データリーダの宣言 Dim dtrdr As System.Data.OleDb.OleDbDataReader 'コネクションをオープン Me.Ocnsample1.Open() 'データコマンドのコマンドテキストにテキストボックスのSQL文を代入 Me.odccmd.CommandText = Me.TextBox1.Text 'データリーダーの実行 dtrdr = odccmd.ExecuteReader() 'テキストボックス2をクリア Me.TextBox2.Clear() 'データがあるうちは While (dtrdr.Read = True) 'テキストボックス2に表示 Me.TextBox2.Text = Me.TextBox2.Text + (dtrdr("カラム1")) + vbCrLf '(select * の場合のやりかたを知りませんので明示的にカラム名をいれています。) End While 'データリーダを閉じる dtrdr.Close() 'コネクションを閉じる Me.Ocnsample1.Close() こうすれば dataAdapter は使いません。
お礼
そのやり方ですと接続方法が今までと違うのでまた困りました Dim sqlCn = New SqlClient.SqlConnection() 'data sourceとはサーバー名ですよね? 'initial catalogはデータベース名? 'user&passはSQLサーバー認証ですか?それともWindows認証? sqlCn.ConnectionString = "data source=Server;" & _ "initial catalog=DB201;" & _ "user id=db201;" & _ "password=db201;" & _ "persist security info=True;" 'トレースするとここで落ちます。接続文字列が間違っているのでしょうか? sqlCn.Open() 'Stateプロパティを使って接続状態を表示する MessageBox.Show(sqlCn.State.ToString() & " 状態です。", "結果通知") '接続を終了する sqlCn.Close()
補足
udlを使ってなんとかできました。 ありがとうございます