在我的發票軟體中,我有一個“主”datagridview,我集成了一個查找功能:一旦用戶在代碼欄位上按 F3,它就會顯示一個帶有另一個 datagridview 的模態表單,該表單顯示可供選擇的產品串列。

我被卡住的地方是用戶在所選產品上單擊“確定”,因為我不太清楚如何正確填充 Datagridview 以便將所有產品放在同一行上。這是我的代碼:
Private Function RicercaxCodiceArticolo(ByVal codiceart As String)
Dim strsql As String
Dim cmd As SqlCommand
Dim source As New BindingSource
Dim count As Integer
connection.Open()
strsql = "SELECT CODICEARTICOLO AS 'Codice', DESCRIZIONEARTICOLO AS 'Descrizione', UNITAMISURA AS 'Um', CODICEIVA AS 'Iva' " _
& ",COSTOBASE AS 'Costo', PREZZOBASE AS 'Prezzo', COSTOULTIMO AS 'Costo Ult.', BARCODE AS 'Barcode', NOTEARTICOLO AS 'Note' " _
& ",CATEGORIAARTICOLO AS 'Categ.Art.', GIACENZA AS 'Giacenza', FORNITOREPREF AS 'Fornit. Pref.' FROM Articoli " _
& " WHERE CODICEARTICOLO = '" & codiceart & "'"
cmd = New SqlCommand()
cmd.CommandText = strsql
cmd.CommandType = CommandType.Text
cmd.Connection = connection
'TODO: Completare
source.DataSource = cmd.ExecuteReader
DataGridView1.Rows.Add(source.Current!Codice)
DataGridView1.Rows.Add(source.Current!Descrizione)
connection.Close()
End Function
當然 Add 方法的第二行是錯誤的,但是如何在同一行填充所有資料呢?
uj5u.com熱心網友回復:
好吧……我會假設您忽略了告訴我們的幾件事。
我們必須假設第一個網格不使用 a
DataSource并且在設計器中或在您未顯示的某些代碼中添加了列。此假設基于將行直接添加到網格的代碼,因為當它是資料系結時,您不能將行直接添加到網格。另外,我將假設代碼行......
source.DataSource = cmd.ExecuteReader... 正在
DataTable從 SQL 命令回傳一個cmd。
如果我的兩個假設都是正確的,那么在我的小測驗中,代碼行......
source.Current
將回傳DataRowView“選定”行的物件,source您只需將其轉換為 aDataRowView即可獲取要添加到網格中單行的值。就像是…
Dim drv As DataRowView
drv = CType(source.Current, DataRowView)
DataGridView1.Rows.Add(drv("Codice"), drv("Descrizione"))
最后,將 aDataTable用作DataSource第一個網格的aBindingSource并簡單地將行“匯入”到DataTable. 選擇你自己的毒藥。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/449366.html
