VB.NETで DataTableを作成 ⇒ ユーザが値を選択 ⇒ 登録時にユーザが選択した値よりDataRow()を利用して、
コードを取得⇒取得したコードをデーターベースに登録
したいのですが、値からコードの取得方法がわかりません。
### 該当のソースコード
Public Class Form4
Dim dt As New DataTable("KoujiTable")
Private Sub Form4_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
' データセットを作成します
' Dim dt As New DataTable("KoujiTable")
dt.Columns.Add("ColumnA", Type.GetType("System.String"))
dt.Columns.Add("ColumnB", Type.GetType("System.String"))
dt.Columns.Add("ColumnC", Type.GetType("System.String"))
dt.Rows.Add("", "")
dt.Rows.Add(100, "AAA", "123")
dt.Rows.Add(200, "BBB", "223")
dt.Rows.Add(300, "CCC", "323")
dt.Rows.Add(400, "dAA", "423")
dt.Rows.Add(500, "eBB", "523")
dt.Rows.Add(600, "fCC", "623")
dt.AcceptChanges()
' マルチカラムコンボボックス型セルを設定します (グレープシテイのスプレッドシートにコンボボックスを作成)
Dim mc As New FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType
mc.DataSourceList = dt
mc.ListWidth = 260
mc.AcceptsArrowKeys = FarPoint.Win.SuperEdit.AcceptsArrowKeys.AllArrows
mc.AutoSearch = FarPoint.Win.AutoSearch.SingleCharacter
mc.Editable = True '編集を許可する
FpSpread1.ActiveSheet.Cells(2, 2).CellType = mc
end sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim rows As DataRow()
Dim tmp As String
dt.PrimaryKey = New DataColumn() {dt.Columns("ColumnA")}
TextBox1.Text = dt.Rows.Find("AAA")("")
TextBox2.Text = dt.Rows.Find("200")("Columnc")
rows = dt.Select("ColumnC = '423'")
'*** ここで、「ColumnC = '423'」より『ColumnAのコード』(100)を取得したいのですが、
方法を調べても見当たりませんでした。
End Sub
No.3ベストアンサー
- 回答日時:
Dim rows As DataRow()
とあるように、変数rowsは 「DataRowの配列」になっています。
一つ一つのDataRowは rows(0) 等のように添字を指定することで取得できます。
また、For Eachで全てを順番に処理することもできます。
DataRowの中の特定の列を得るには、 列名の文字列か、列番号を指定します。
TextBox2.Text = dt.Rows.Find("200")("Columnc")
これは
Dim dr as DataRow
dt=dt.Rows.Find("200")
でDataRowを取得して
TextBox2.Text =dr("Columnc")
とDataRowの"Columnc"列を取得する、ということを1行にまとめたものです。
DataTable.Select メソッドは、見つかったDataRowの全てを配列で返します。
複数見つかることも、全く見つからないこともあるからです。
見つからない場合どうするのか、複数見つかったらどうするのか、を考慮する必要があります。
No.1
- 回答日時:
有償ソフトらしきもの?なので検証は出来ませんが、ちょっと気になった部分だけ。
dt.Columns.Add("ColumnA", Type.GetType("System.String"))
dt.Columns.Add("ColumnB", Type.GetType("System.String"))
dt.Columns.Add("ColumnC", Type.GetType("System.String"))
において書き込む値は、
dt.Rows.Add(100, "AAA", "123")
と 数値、文字列、文字列 となっているのと、
TextBox2.Text = dt.Rows.Find("200")("Columnc")
と列名が大文字・小文字については区別がないのかなって点ですかね。
今回の質問には関係ない情報かもですかねぇ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- 数学 単振り子とルンゲ・タック法 1 2022/07/15 00:05
- C言語・C++・C# クラスのメンバ変数を基準に並べ替えをしたい 5 2022/12/25 17:40
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Excel(エクセル) マクロのコードを、少しでも削って短くしたい 3 2022/08/30 07:46
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Excel(エクセル) 1つのファイルを3つのフォルダにファイル名を【明日の日付】にして、コピーをしたい 2 2022/12/21 17:43
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
【お題】追い込まれた犯人が咄嗟に言った一言とは?
-
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
-
4
DataTableに特定のフィールドが存在するかどうか調べるには?
Visual Basic(VBA)
-
5
VB.NETでのイベントの途中終了
Visual Basic(VBA)
-
6
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
7
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
8
「タイプ初期化子が例外をスローしました」エラー何?
Visual Basic(VBA)
-
9
CloseとDisposeの違い
Visual Basic(VBA)
-
10
VB.net 重複チェックがしたいです
Visual Basic(VBA)
-
11
Integer変数をカラにしたいのですが
Visual Basic(VBA)
-
12
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
13
DataTableから条件を満たした行を別のDatatableへコピーしたい
その他(プログラミング・Web制作)
-
14
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
15
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
16
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
17
<VB.NET>INSERT文でDBにデータを入れたい
Visual Basic(VBA)
-
18
DataSetから、DataTableを取得したい。
C言語・C++・C#
-
19
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
-
20
VB.NETでフォーム上にExcelのような表を表示する方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
Flexgridで選択行の列の値を取...
-
count(*)で取得した値をJAVAの...
-
VBAでActiveDirectoryのユーザ...
-
ASPでユーザのグループ名取得
-
JavaScriptにおいてコンピュー...
-
ListView 項目の選択/選択解除...
-
VBA:小数点以下の数字を取得で...
-
利用者側のMACアドレスを取得し...
-
JavaScriptでWindowsログオンID...
-
vbaで、オートシェイプ文字幅と...
-
リストボックスをチェックボッ...
-
DataGridView 複数選択で行番...
-
NTPサーバから時刻を取得する
-
コンボボックスの表示は最大何行?
-
Spreadの選択行の取得について
-
VB .netにて現在時刻+1時間後...
-
ドロップダウンリストの初期表...
-
現在時刻をミリ秒まで取得
-
outlookでメールのフォルダパス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
ListView 項目の選択/選択解除...
-
VBAでActiveDirectoryのユーザ...
-
VBA:小数点以下の数字を取得で...
-
count(*)で取得した値をJAVAの...
-
Flexgridで選択行の列の値を取...
-
利用者側のMACアドレスを取得し...
-
Spreadの選択行の取得について
-
VB .netにて現在時刻+1時間後...
-
VBA リストボックス内の値を複...
-
JavaScriptにおいてコンピュー...
-
JavaScriptでWindowsログオンID...
-
EXCELのリストボックスを選択し...
-
エクセルVBAで複数選択できるよ...
-
ListViewで複数選択された項目...
-
リモートコンピュータのPC名を...
-
データ数をカウントしたいのですが
-
エクセルVBAで範囲内での位置取...
-
郵便番号検索APIにてget Elemen...
-
URIでのページの移動について
おすすめ情報
TextBox1.Text = dt.Rows.Find("AAA")("") <-----*a
TextBox2.Text = dt.Rows.Find("200")("Columnc") <-----*b
rows = dt.Select("ColumnC = '423'") <-------*c
*a TextBox1.Text は、エラーでこけない為の確認です。(今回のQAに直接関係ありません)
*b,*cは正常に動作することは確認できてます。
QAの趣旨は、rows = dt.Select("ColumnC = '423'")より
rows の該当行からコード"ColumnA"を抽出したいのです。