こんにちは、
10個のテキストフィールドと1個のコンボボックスを備えたWindowsフォームがあります。
ユーザーがコンボボックスでレコードを選択したら、フォームのデータテーブル変数(dtBranchesと呼ばれます)でそのレコードを見つけて、データ行から10個のテキストフィールドに入力します。
私はこれを試しました:
Dim dr As System.Data.DataRow
If mSortCode > 0 Then
dr = dtBranches.Select("SortCode='" & mSortCode & "'")
Me.txtBranch.Text = dr("Branch").ToString()
Me.txtBankName.Text = dr("BankName").ToString()
Me.txtBranchTitle.Text = dr("BranchTitle").ToString()
Me.txtReference.Text = dr("Ref").ToString
Me.txtAddr1.Text = dr("Address1").ToString
Me.txtAddr2.Text = dr("Address2").ToString
Me.txtAddr3.Text = dr("Address3").ToString
Me.txtPostCode.Text = dr("PostCode").ToString
Me.txtTelNo.Text = dr("TelephoneNumber").ToString
Me.txtTown.Text = dr("Town").ToString
Me.txtTelNo.Text = dr("TelephoneNumber").ToString
end if
しかし、それをコンパイルすることはできません...
これを行うための正しくて最良の方法は何ですか?
ありがとう
フィリップ
DataTable.Select DataRowsの配列を返します。結果を受け取るには配列を宣言する必要があります
Dim dr() As System.Data.DataRow
もちろん、行が返されるかどうかを確認し、配列の最初の行をアドレス指定する必要があります
dr = dtBranches.Select("SortCode='" & mSortCode & "'")
If dr.Length > 0 Then
Me.txtBranch.Text = dr(0)("Branch").ToString()
Me.txtBankName.Text = dr(0)("BankName").ToString()
...... and so on ...
私は使うだろう Linq-ToDataSet
そして代わりに強く型付けされたField
メソッド:
Dim matches = From row In dtBranches
Let SortCode = row.Field(Of String)("SortCode")
Where SortCode = mSortCode
If matches.Any() Then
Dim row = matches.First()
Me.txtBranch.Text = row.Field(Of String)("Branch")
Me.txtBankName.Text = row.Field(Of String)("BankName")
Me.txtBranchTitle.Text = row.Field(Of String)("BranchTitle")
Me.txtReference.Text = row.Field(Of String)("Ref")
Me.txtAddr1.Text = row.Field(Of String)("Address1")
Me.txtAddr2.Text = row.Field(Of String)("Address2")
Me.txtAddr3.Text = row.Field(Of String)("Address3")
Me.txtPostCode.Text = row.Field(Of String)("PostCode")
Me.txtTelNo.Text = row.Field(Of String)("TelephoneNumber")
Me.txtTown.Text = row.Field(Of String)("Town")
Else
MesageBox.Show("SortCode not found.")
End If
大文字と小文字を区別せずに比較する場合は、上記のWhere
を次のように置き換えます。
Where StringComparer.OrdinalIgnoreCase.Equals(SortCode, mSortCode)
ちなみに、あなたは電話番号を2回割り当てています。