--
'將DataGridView1及DataGridView2的AllowDrop屬性設為true
Dim cn As New SqlConnection("server=192.168.7.23;database=northwind;user id=sa;password=sa")
Dim cmd As New SqlCommand("select customerid,companyname,city from customers", cn)
Dim da As New SqlDataAdapter
Dim ds As New DataSet
Dim index As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
da.SelectCommand = cmd
da.Fill(ds, "customers")
cmd.CommandText = "select customerid,companyname,'' as temp,city from customers"
da.FillSchema(ds, SchemaType.Source, "customers2")
DataGridView1.DataSource = ds.Tables("customers")
DataGridView2.DataSource = ds.Tables("customers2")
End Sub
'DataGridView1拖曳到DataGridView2
Private Sub DataGridView1_CellMouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseDown
If e.Button = Windows.Forms.MouseButtons.Left Then
index = e.RowIndex
DataGridView1.DoDragDrop(ds.Tables("customers").Rows(e.RowIndex), DragDropEffects.Move)
End If
End Sub
Private Sub DataGridView2_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles DataGridView2.DragDrop
Dim dr As DataRow = e.Data.GetData(GetType(DataRow))
Dim new_dr As DataRow = ds.Tables("customers2").NewRow
Dim j As Integer = 0
For i As Integer = 0 To ds.Tables("customers2").Columns.Count - 1
If i <> 2 Then
new_dr(i) = dr(j)
j += 1
Else
new_dr(i) = "ABC" '填入combobox的值
End If
Next
ds.Tables("customers2").Rows.Add(new_dr)
ds.Tables("customers").Rows.RemoveAt(index)
End Sub
Private Sub DataGridView2_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles DataGridView2.DragEnter
e.Effect = DragDropEffects.Move
End Sub
'DataGridView2拖曳到DataGridView1
Private Sub DataGridView2_CellMouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView2.CellMouseDown
If e.Button = Windows.Forms.MouseButtons.Left Then
index = e.RowIndex
DataGridView2.DoDragDrop(ds.Tables("customers2").Rows(e.RowIndex), DragDropEffects.Move)
End If
End Sub
Private Sub DataGridView1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles DataGridView1.DragDrop
Dim dr As DataRow = e.Data.GetData(GetType(DataRow))
Dim new_dr As DataRow = ds.Tables("customers").NewRow
Dim j As Integer = 0
For i As Integer = 0 To ds.Tables("customers2").Columns.Count - 1
If i <> 2 Then
new_dr(j) = dr(i)
j += 1
End If
Next
ds.Tables("customers").Rows.Add(new_dr)
ds.Tables("customers2").Rows.RemoveAt(index)
End Sub
Private Sub DataGridView1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles DataGridView1.DragEnter
e.Effect = DragDropEffects.Move
End Sub
沒有留言:
張貼留言