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

わんくま同盟

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

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

ツリー一括表示

SQLSsrverからDataGridViewに表示したい /かわにのにわか (20/05/18(Mon) 17:19) #94781
Re[1]: SQLSsrverからDataGridViewに表示したい /WebSurfer (20/05/18(Mon) 17:26) #94782
│└ Re[2]: SQLSsrverからDataGridViewに表示したい /かわにのにわか (20/05/19(Tue) 08:53) #94786
Re[1]: SQLSsrverからDataGridViewに表示したい /大谷刑部 (20/05/19(Tue) 13:28) #94788
│└ Re[2]: SQLSsrverからDataGridViewに表示したい /かわにのにわか (20/05/19(Tue) 17:20) #94792
│  └ Re[3]: SQLSsrverからDataGridViewに表示したい /大谷刑部 (20/05/20(Wed) 11:13) #94797
│    └ Re[4]: SQLSsrverからDataGridViewに表示したい /かわにのにわか (20/05/20(Wed) 17:06) #94804
Re[1]: SQLSsrverからDataGridViewに表示したい /WebSurfer (20/05/21(Thu) 10:39) #94807
  └ Re[2]: SQLSsrverからDataGridViewに表示したい /かわにのにわか (20/05/22(Fri) 08:33) #94826
    └ Re[3]: SQLSsrverからDataGridViewに表示したい /かわにのにわか (20/05/22(Fri) 08:59) #94827
      └ Re[4]: SQLSsrverからDataGridViewに表示したい /WebSurfer (20/05/22(Fri) 09:38) #94828


親記事 / ▼[ 94782 ] ▼[ 94788 ] ▼[ 94807 ]
■94781 / 親階層)  SQLSsrverからDataGridViewに表示したい
□投稿者/ かわにのにわか (1回)-(2020/05/18(Mon) 17:19:27)

分類:[.NET 全般] 

SQLSsrver14.0のテーブルからデータを取り出し、VB2010上のDataGridViewに表示したいのですが、VBプログラムを教えてください。
SQLServerとの接続からお願いします。

DB:Business management system
テーブル名:Supplier master
code
companey_name
gojuuon

SQL SERVER認証はこれで合ってますでしょうか?

Public Class Suppliers_master

Private Sub Button_kensaku_Click(sender As System.Object, e As System.EventArgs) Handles Button_kensaku.Click

  Dim strConnectSQL As String
  Dim strSQL As String
  Dim SQLDA As SqlClient.SqlDataAdapter
  Dim SQLDS As New DataSet()

  strConnectSQL = _
   "Server=FSH-025\SQLEXPRESS;" & _
   "Initial Catalog=Business management system;" & _
   "User ID=*****(伏せます);" & _
   "Password="";"

End Sub

End Class


[ □ Tree ] 返信 編集キー/

▲[ 94781 ] / ▼[ 94786 ]
■94782 / 1階層)  Re[1]: SQLSsrverからDataGridViewに表示したい
□投稿者/ WebSurfer (2054回)-(2020/05/18(Mon) 17:26:29)
No94781 (かわにのにわか さん) に返信

せめて SqlDataAdapter を使って DataSet / DataTable に SQL Server のテーブルから
データを取得するとことまで自力で実装できませんか?

SqlDataAdapter をキーワードにググれば参考になる記事は多々ヒットすると思います。
[ 親 94781 / □ Tree ] 返信 編集キー/

▲[ 94782 ] / 返信無し
■94786 / 2階層)  Re[2]: SQLSsrverからDataGridViewに表示したい
□投稿者/ かわにのにわか (2回)-(2020/05/19(Tue) 08:53:36)
No94782 (WebSurfer さん) に返信
> ■No94781 (かわにのにわか さん) に返信
>
> せめて SqlDataAdapter を使って DataSet / DataTable に SQL Server のテーブルから
> データを取得するとことまで自力で実装できませんか?
>
> SqlDataAdapter をキーワードにググれば参考になる記事は多々ヒットすると思います。


ありがとうございます。
VBをインストール → プロジェクトを作成 → フォームのデザイン → SQLServerのインストール → DB作成 → テーブル作成
ここまで素人が独力で2ヶ月かかって行いましたが、DataGridViewにテーブルのデータを取得するところで、様々なページをググって試しましたが、どうしても進展出来ませんでした。
SqlDataAdapterというのは初めて知りましたので、少し勉強したいと思います。
そこのステップを解決出来たら、改めてご相談をさせてください。

重ね重ね、ありがとうございました。
[ 親 94781 / □ Tree ] 返信 編集キー/

▲[ 94781 ] / ▼[ 94792 ]
■94788 / 1階層)  Re[1]: SQLSsrverからDataGridViewに表示したい
□投稿者/ 大谷刑部 (76回)-(2020/05/19(Tue) 13:28:06)
No94781 (かわにのにわか さん) に返信
> SQLSsrver14.0のテーブルからデータを取り出し、VB2010上のDataGridViewに表示したいのですが、VBプログラムを教えてください。
> SQLServerとの接続からお願いします。
>
> DB:Business management system
> テーブル名:Supplier master
> code
> companey_name
> gojuuon
>
> SQL SERVER認証はこれで合ってますでしょうか?
>
> Public Class Suppliers_master
>
> Private Sub Button_kensaku_Click(sender As System.Object, e As System.EventArgs) Handles Button_kensaku.Click
>
>   Dim strConnectSQL As String
>   Dim strSQL As String
>   Dim SQLDA As SqlClient.SqlDataAdapter
>   Dim SQLDS As New DataSet()
>
>   strConnectSQL = _
>    "Server=FSH-025\SQLEXPRESS;" & _
>    "Initial Catalog=Business management system;" & _
>    "User ID=*****(伏せます);" & _
>    "Password="";"
>
> End Sub
>
> End Class
>
単なる文字列代入の構文ミスでは?
上記だと、パスワードが"って意味になると思いますけど。

[ 親 94781 / □ Tree ] 返信 編集キー/

▲[ 94788 ] / ▼[ 94797 ]
■94792 / 2階層)  Re[2]: SQLSsrverからDataGridViewに表示したい
□投稿者/ かわにのにわか (3回)-(2020/05/19(Tue) 17:20:55)
No94788 (大谷刑部 さん) に返信
> ■No94781 (かわにのにわか さん) に返信
>>SQLSsrver14.0のテーブルからデータを取り出し、VB2010上のDataGridViewに表示したいのですが、VBプログラムを教えてください。
>>SQLServerとの接続からお願いします。
>>
>>DB:Business management system
>>テーブル名:Supplier master
>>code
>>companey_name
>>gojuuon
>>
>>SQL SERVER認証はこれで合ってますでしょうか?
>>
>>Public Class Suppliers_master
>>
>> Private Sub Button_kensaku_Click(sender As System.Object, e As System.EventArgs) Handles Button_kensaku.Click
>>
>>  Dim strConnectSQL As String
>>  Dim strSQL As String
>>  Dim SQLDA As SqlClient.SqlDataAdapter
>>  Dim SQLDS As New DataSet()
>>
>>  strConnectSQL = _
>>    "Server=FSH-025\SQLEXPRESS;" & _
>>    "Initial Catalog=Business management system;" & _
>>    "User ID=*****(伏せます);" & _
>>    "Password="";"
>>
>> End Sub
>>
>>End Class
>>
> 単なる文字列代入の構文ミスでは?
> 上記だと、パスワードが"って意味になると思いますけど。
>


ご回答ありがとうございます。
先にも申しました通り、全くの素人なものですから、何もかもが分からずの手探り状態です。

流れとしては、SQR Serverの認証 → 取り出すデータの変数のセット → SQL文(select *)→ DataGridViewの各列にセット という順序かなぁと思っていまして、まず最初の認証に付いては合っているかどうか、をご確認したかった次第です。
[ 親 94781 / □ Tree ] 返信 編集キー/

▲[ 94792 ] / ▼[ 94804 ]
■94797 / 3階層)  Re[3]: SQLSsrverからDataGridViewに表示したい
□投稿者/ 大谷刑部 (78回)-(2020/05/20(Wed) 11:13:13)
No94792 (かわにのにわか さん) に返信
> ■No94788 (大谷刑部 さん) に返信
>>■No94781 (かわにのにわか さん) に返信
> 先にも申しました通り、全くの素人なものですから、何もかもが分からずの手探り状態です。

素人にしても、どの程度?っていうのはご自身で自己分析して書いた方がいいかと。
VB自体が初めてですということであれば、そう書かないと、
エスケープシーケンスわかってないだけじゃん。自分で調べろよそれくらい。って反応が増えます。

> 流れとしては、SQR Serverの認証 → 取り出すデータの変数のセット → SQL文(select *)→ DataGridViewの各列にセット という順序かなぁと思っていまして、まず最初の認証に付いては合っているかどうか、をご確認したかった次第です。
もしそうなのであれば、まず、SSMS等でDBにはちゃんとつながるって確認してから、
VBからADO.netでつながるか
→SSMSでつながるのにADO.netを経由してつながらないなら、まずプロバイダーがつながるようになっているか?(.netの場合、 Imports ステートメントで定義されてるかどうかとほぼイコールですけど)
→該当するプロバイダーに適した接続文字列になっているか?

の順番になると思います。
やみくもにコード書いて、トライアンドエラーじゃ知識がなければ時間もかかります。
まずどこからどこまで自分がわかっていて、どこがわからないかを明確化してください。
そうでないと質問に答えようがないです。
[ 親 94781 / □ Tree ] 返信 編集キー/

▲[ 94797 ] / 返信無し
■94804 / 4階層)  Re[4]: SQLSsrverからDataGridViewに表示したい
□投稿者/ かわにのにわか (4回)-(2020/05/20(Wed) 17:06:35)
No94797 (大谷刑部 さん) に返信
> ■No94792 (かわにのにわか さん) に返信
>>■No94788 (大谷刑部 さん) に返信
> >>■No94781 (かわにのにわか さん) に返信
>>先にも申しました通り、全くの素人なものですから、何もかもが分からずの手探り状態です。
>
> 素人にしても、どの程度?っていうのはご自身で自己分析して書いた方がいいかと。
> VB自体が初めてですということであれば、そう書かないと、
> エスケープシーケンスわかってないだけじゃん。自分で調べろよそれくらい。って反応が増えます。
>
>>流れとしては、SQR Serverの認証 → 取り出すデータの変数のセット → SQL文(select *)→ DataGridViewの各列にセット という順序かなぁと思っていまして、まず最初の認証に付いては合っているかどうか、をご確認したかった次第です。
> もしそうなのであれば、まず、SSMS等でDBにはちゃんとつながるって確認してから、
> VBからADO.netでつながるか
> →SSMSでつながるのにADO.netを経由してつながらないなら、まずプロバイダーがつながるようになっているか?(.netの場合、 Imports ステートメントで定義されてるかどうかとほぼイコールですけど)
> →該当するプロバイダーに適した接続文字列になっているか?
>
> の順番になると思います。
> やみくもにコード書いて、トライアンドエラーじゃ知識がなければ時間もかかります。
> まずどこからどこまで自分がわかっていて、どこがわからないかを明確化してください。
> そうでないと質問に答えようがないです。


ありがとうございます。
おっしゃる通りです。
何を聞いたら良いのかも分からない程度の素人ですが、自分の中で段取りが出来ているつもりでいました。
順次トライしていきたいと思います。
[ 親 94781 / □ Tree ] 返信 編集キー/

▲[ 94781 ] / ▼[ 94826 ]
■94807 / 1階層)  Re[1]: SQLSsrverからDataGridViewに表示したい
□投稿者/ WebSurfer (2058回)-(2020/05/21(Thu) 10:39:57)
No94781 (かわにのにわか さん) に返信

最初の質問内容からは、表題の「SQLSsrverからDataGridViewに表示したい」を実現する
ための具体的な方法を 1 から 10 まで手取り足取り教えてほしい・・・ということと
思ってましたが、そうではなさそうですね。

表題は最終的な目標ではあるが、まずは SQL Server の接続文字列の書き方を教えてほ
しいというのがこのスレッドの質問なのでしょうか?

(であれば、最初からそのように質問文を書くべきと思いますが、いまさらそれを言って
も始まらないので、その話はちょっと置いといて)

SQL Server 認証を使うのは何かそうしなければならない理由があるのですか? ローカル
の SQL Server Express に開発目的で接続して使うなら Windows 認証にしませんか。

認証・承認をどうするのが質問者さんの目的に適切かから始める方がよさそうです。
[ 親 94781 / □ Tree ] 返信 編集キー/

▲[ 94807 ] / ▼[ 94827 ]
■94826 / 2階層)  Re[2]: SQLSsrverからDataGridViewに表示したい
□投稿者/ かわにのにわか (5回)-(2020/05/22(Fri) 08:33:37)
No94807 (WebSurfer さん) に返信
> ■No94781 (かわにのにわか さん) に返信
>
> 最初の質問内容からは、表題の「SQLSsrverからDataGridViewに表示したい」を実現する
> ための具体的な方法を 1 から 10 まで手取り足取り教えてほしい・・・ということと
> 思ってましたが、そうではなさそうですね。
>
> 表題は最終的な目標ではあるが、まずは SQL Server の接続文字列の書き方を教えてほ
> しいというのがこのスレッドの質問なのでしょうか?
>
> (であれば、最初からそのように質問文を書くべきと思いますが、いまさらそれを言って
> も始まらないので、その話はちょっと置いといて)
>
> SQL Server 認証を使うのは何かそうしなければならない理由があるのですか? ローカル
> の SQL Server Express に開発目的で接続して使うなら Windows 認証にしませんか。
>
> 認証・承認をどうするのが質問者さんの目的に適切かから始める方がよさそうです。



順次ステップアップして行きたい、と思っています。
正直SQLSrver認証とwindows認証の違いも良く分かっていません。
要は、DBのデータをDataGridViewに表示したいのです。

ネットを見て、真似してみてもエラーが出てしまい、何がエラーかも分からない状態です。
ヴァージョンのせいなのか、認証が不正確なのか、datagridviewに表示するのも列ごとに当てはめているようには思えなかったり、分からないことだらけです。
正直、素人がネット検索だけで出来るようなものではないのかとほぼあきらめかけていましたが、ここのサイトを見つけたので最後の光明として質問しています。

最初は上に書いた通りの段取りを踏めば、出来る物だと思っていました。
なので、認証の文章、接続、SQL文、表示の文章を正確に書けば良いと思っていましたが、その辺の段取りからもし教えていただければありがたいです。
そして、各命令文についても、順次御指南いただけると大変助かります。
分からないことばかりの上に下手な質問で申し訳ありません。
宜しくお願い致します。
[ 親 94781 / □ Tree ] 返信 編集キー/

▲[ 94826 ] / ▼[ 94828 ]
■94827 / 3階層)  Re[3]: SQLSsrverからDataGridViewに表示したい
□投稿者/ かわにのにわか (6回)-(2020/05/22(Fri) 08:59:24)
SQLServer認証 SQLServerを使うときの認証のやり方のひとつで、普通にIDとパスワードを使って認証を行う認証のやり方
Windows認証 Windowsのコンピュータにログインするときに使った認証情報を使いまわして認証を行う認証のやり方
ということですね。

ありがとうございます。
Windows認証で十分ですね。


Public Class SQLSample
 Public Sample Sub Main()

  'データベースへの接続
  Dim Con As New SqlClient.SqlConnection
  Con.ConnectionString = _
  "Data Source = [サーバ名];" & _
  "Initial Catalog = [データベース名];" & _
  "Integrated Security = SSPI"

 Try

  Con.Open()
  Dim command As New SqlClient.SqlCommand

  'コネクションの指定
  command.Connection = Con

  'コマンドの種類をテキストにする(省略可)
  command.CommandType = CommandType.Text

  '実行するSQLを指定
  command.CommandText = "SELECT * FROM [テーブル名]"

  'SQLの結果を取得する
  Dim sr As SqlClient.SqlDataReader
  sr = command.ExecuteReader()

  command.Dispose()

  '取得した結果を出力する
  While sr.Read

   'レコードの最初の項目を出力
    Console.Write(sr(0).ToString & ",")

   'レコードの2番目の項目を出力
    Console.Write(sr(1).ToString)

  End While

 Finally
  'コネクションの破棄
  If Con.State <> ConnectionState.Closed Then 
    Con.Close()
   Con.Dispose()
  End If

 End Try
End Sub
End Class


これのレコードの項目の出力先をDataGridViewにすれば良いのでしょうか?

[ 親 94781 / □ Tree ] 返信 編集キー/

▲[ 94827 ] / 返信無し
■94828 / 4階層)  Re[4]: SQLSsrverからDataGridViewに表示したい
□投稿者/ WebSurfer (2060回)-(2020/05/22(Fri) 09:38:33)
No94827 (かわにのにわか さん) に返信

> これのレコードの項目の出力先をDataGridViewにすれば良いのでしょうか?

いえ、違います。SqlDataReader を使うのは遠回りです。もっと簡単にスマートにできる方法
があります。

最初の私のレス No94782 を読んでください。それに書いてあるように DataSet / DataTable に
DB のデータを取得してください。

それを BindingSource 経由で DataDridView の DataSource に設定すれば表示されるはずです。

ただ、上のコードでデータが表示できていないと、最初の問題の接続文字列の書き方さえクリア
できていないかも。そこはどうなのですか?

[ 親 94781 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -