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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
CloseとDisposeの違い
Visual Basic(VBA)
-
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
-
4
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
5
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
6
この行は既に別のテーブルに属しています
Visual Basic(VBA)
-
7
DataTableに特定のフィールドが存在するかどうか調べるには?
Visual Basic(VBA)
-
8
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
9
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
10
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
11
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
12
DataTableに対するLINQについて
Visual Basic(VBA)
-
13
データセットのレコード更新がしたい
Visual Basic(VBA)
-
14
VB.net 重複チェックがしたいです
Visual Basic(VBA)
-
15
VB.net 任意の例外を発生させるには・・・
Visual Basic(VBA)
-
16
チェックボックスを操作できないようにしたいです VB.NET
Visual Basic(VBA)
-
17
DataTableから条件を満たした行を別のDatatableへコピーしたい
その他(プログラミング・Web制作)
-
18
DataSetから、DataTableを取得したい。
C言語・C++・C#
-
19
DataTableに入っているデータを全てinsertしたい!(C#)
Microsoft ASP
-
20
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
count(*)で取得した値をJAVAの...
-
VBAでActiveDirectoryのユーザ...
-
Yahoo! JAPANのID取得について
-
VB.NETで DataRow()を利用して...
-
ディスプレイの表示可能な解像...
-
VBA:小数点以下の数字を取得で...
-
C言語におけるコンピュータ名・...
-
データ数をカウントしたいのですが
-
年月日時分秒の変数を教えて下さい
-
ListView 項目の選択/選択解除...
-
エクセルVBAで複数選択できるよ...
-
エクセルVBAで別ファイルのデー...
-
時間を分に変換するプログラム
-
UWSCでhtmlソースの文字列を取...
-
COMポート 名前を取得する方法
-
Flexgridで選択行の列の値を取...
-
like演算子内に変数って使えな...
-
ASP.NETでIPアドレスログイン管...
-
ActiveWorkbook.Path取得できない
-
利用者側のMACアドレスを取得し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでActiveDirectoryのユーザ...
-
VB.NETで DataRow()を利用して...
-
ListView 項目の選択/選択解除...
-
VBA:小数点以下の数字を取得で...
-
count(*)で取得した値をJAVAの...
-
データ数をカウントしたいのですが
-
like演算子内に変数って使えな...
-
ListViewで複数選択された項目...
-
Flexgridで選択行の列の値を取...
-
エクセルVBAで複数選択できるよ...
-
JavaScriptでWindowsログオンID...
-
利用者側のMACアドレスを取得し...
-
郵便番号検索APIにてget Elemen...
-
COMポート 名前を取得する方法
-
コンボボックス表示文字列を取...
-
VBA Shapesの座標からセル位置...
-
Spreadの選択行の取得について
-
VBScriptで数値にコンマを付け...
-
C言語におけるコンピュータ名・...
-
Excel VBA でログインしてい...
おすすめ情報
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"を抽出したいのです。