お世話になります。
VB.Net 駆け出しの者です。
コンボボックスのDataSourceがSQL Serverのデータであります。
データを登録したら、そのデータが反映した内容のコンボボックスにしたいのですが、
Me.コンボボックス.DataSource = Nothing
Me.コンボボックスのBindingSource.ResetBindings(False)
Me.コンボボックス.DataSource = Me.コンボボックスのBindingSource
上記を実行しても、登録したデータがデータソースに反映してないのです。
そのフォームを一度閉じて、再度開くとデータは反映しております。
Access で言うところの ReQuery のようなことができないかと質問させていただきました。
上記のコードで問題があったり、別のコードで実現できるなどお分かりになる方がいらっしゃいましたら、何卒ご教授いただければと存じます。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
>>Me.コンボボックス.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.バインディングソース, "コンボボックス", True))
これは、コントロールとデータソースを結びつけている命令です。これを入れても、DBから読み込み処理してくれません。
それではなく、以下のような感じの命令がForm_Loadの中にあるのではないでしょうか?
Me.xxxTableAdapter.Fill(Me.dataSet.xxxTable)
このTableAdapterの中で記述されているSQL命令により、データセットの中のテーブルにデータが読み込まれていると思いますので、それを実行すればいいのではないかと思います。
(私が使っているのはC#なので、いくらか差があるとは思いますが、基本は同じはずなので・・・)
>>Designer画面以外で、なにか設定している箇所があるということでしょうか?
いえ、Designer画面のコードの中にたぶんあると思います。
ただ、プログラムの作りによっては、どこかの初期処理クラスの中でやっていて、わかりにくくなっているのかもしれませんが・・・。
lv4u さん お世話になります。
Me.xxxTableAdapter.Fill(Me.dataSet.xxxTable)
ご指摘のコードは Form Load の先頭にありました。
灯台下暗しとはこの事でした^^;
このコードでSQLから新たにデータを取得するんですね!
大変勉強になりました。
ありがとうございました。
No.1
- 回答日時:
>>上記を実行しても、登録したデータがデータソースに反映してないのです。
上記を実行しても、それはSQLServerからのデータを新たに読み込むコードを実行しないので反映しないのでしょう。
そして、フォームを閉じて、再度開くと、その中でSQLServerからのデータを読み込むから反映するということだと思います。
VB.Netは、Accessと違って、データセット内のデータテーブル(メモリーデータベース?)を間にはさんでいます。
たぶん、上記命令は、そのデータテーブルからデータから読み込むけど、SQLServerからデータテーブルには読み込んでないのだと推測します。
なので、フォームを開くときに実行されている(と思える)SQLServerからの読み込み命令を探して、それをコピーして実行すれば表示されるのではないでしょうか?
この回答への補足
lv4u さん お世話になります。
フォームのDesigner画面を開き、該当するコンボボックスの初期設定を見てみると、
Me.コンボボックス.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.バインディングソース, "コンボボックス", True))
Me.コンボボックス.DataSource = Me.バインディングソース
この記述があったので、このコードの前にこれを追加して
Me.コンボボックス.DataBindings.Clear()
実行したのですが、やっぱり登録したてのデータが反映されてませんでした;;
Designer画面以外で、なにか設定している箇所があるということでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。 6 2023/03/21 16:12
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Visual Basic(VBA) ExcelVBA ドロップボックスで月を選択するとそれ以降のデータが残るようにしたい。 3 2022/12/16 14:53
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) ExcelVBAでユーザーフォームでテキストボックスなどからセルに連続して入力するコーディングの際の 2 2022/06/29 22:51
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Excel(エクセル) Excel コンボボックス バックカラー 1 2023/02/18 08:06
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
部品表
-
MSFlexGrid 行選択状態
-
COBOL数値転記の仕様
-
「Nullの使い方が不正です」の...
-
batでレジストリキーから読み取...
-
エクセルのセル最終行取得
-
Excel VBAでフォルダ内の全テキ...
-
access vba 『○○件づつ表示』を...
-
VBAでアクセスDBからデータの取...
-
VB webデータの取得
-
【VB.NET】Excelの最終行までの...
-
VB2010で、選択した系列を最前...
-
クリスタルレポートでレコード...
-
エクセルデータをVBで検索でき...
-
DataGridの全行編集状態での行追加
-
【C#】textBoxの指定行のデータ...
-
【エクセルVBA】DBのデータをCSVに
-
VB6のMsFlexGridコントロールに...
-
非同期のプロセス間通信(パイプ...
-
Visual Basic 2010で方形波(矩...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「Nullの使い方が不正です」の...
-
【C#】textBoxの指定行のデータ...
-
【VB.NET】Excelの最終行までの...
-
VBAでアクセスDBからデータの取...
-
Excel VBAでフォルダ内の全テキ...
-
C# DataTableに最後に追加した...
-
XMLでデータとして画像を指定す...
-
VBAコンボボックスの内容が反映...
-
MSFlexGrid 行選択状態
-
COBOL数値転記の仕様
-
クリスタルレポートでレコード...
-
非同期のプロセス間通信(パイプ...
-
ActiveReportのdetailをデータ...
-
アクセスでウェブ上のデータを...
-
Excel VBAでグループ毎に集計す...
-
batでレジストリキーから読み取...
-
富士通(汎用機)のAIMについて
-
Web画面のTableから数字を取得...
-
Excel VBAで1週間毎にカテゴリ...
-
エクセルのCSV読み込みについて
おすすめ情報