貴重なご提案を高く評価します。vb.netフォームのListViewをクリックするとSQLテーブルの複数の列から値を取り出す方法は?
私は次のようにSQLテーブルを作成しました。
Create table Products (
ItemCode int NOT NUll Primary Key,
ItemName varchar(255),
ItemImage varbinary(MAX),
Category int,
Price Money,
Note varchar(255))
次に、テキストボックスとリストビューを含むvb.net windowsフォームを作成しました。フォームロードイベントで次のコードを与えました。
Imports System.Data.Sql
Imports System.Data.SqlClient
Imports System.Configuration.ConfigurationManager
Imports System.IO
Public Class items
Dim sqlCon As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("myPosConString").ConnectionString)
Dim Command As SqlCommand
Dim Reader As SqlDataReader
Dim i As Integer
Dim Query As String
'Fill Items with pictures into listview
Private Sub FillItemListView()
Dim Adapter As New SqlDataAdapter
Dim dt_Images As New DataTable
Try
lvItem.Clear()
Dim imglist As New ImageList
imglist.ColorDepth = ColorDepth.Depth32Bit
lvItem.LargeImageList = imglist
lvItem.LargeImageList.ImageSize = New System.Drawing.Size(100, 100)
sqlCon.Open()
Query = "select * from products "
Command = New SqlCommand(Query, sqlCon)
Adapter.SelectCommand = Command
Adapter.Fill(dt_Images)
For Each dr As DataRow In dt_Images.Rows
Dim img_buffer = CType(dr("ItemImage"), Byte())
Dim img_stream As New MemoryStream(img_buffer, True)
img_stream.Write(img_buffer, 0, img_buffer.Length)
imglist.Images.Add(dr("ItemCode").ToString(), New Bitmap(img_stream))
img_stream.Close()
Dim lstv As New ListViewItem
lstv.Text = dr("ItemName").ToString
lstv.ImageKey = dr("ItemCode").ToString
lvItem.Items.Add(lstv)
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub items_Load(sender As Object, e As EventArgs) Handles MyBase.Load
FillItemListView()
End Sub
End Class
私が望むようにすべてが機能しています。しかし、Listviewで大きな画像をクリックすると、すべてのテキストボックスにSQLテーブルの他の列から値を取得したいと思います。
リストビュー名は、lvItem
と txtboxesはtxtCode
、txtName
、txtCategory
、txtPrice
、txtNote
あるあります。
どうすればいいですか教えてください。 ありがとうございます。
DataTableとDataGridViewを使用した場合、多くのコードと苦労を省くことができます。「myDGV.DataSource = myDataTable」は、コードをすべて置き換えて文字列をLV – Plutonix
@Plutonixにコピーできますが、 DataGridViewで水平にアイコンとしてのSQLテーブル? –