怎麼這一點居然忘了呢?
針對Datagridview的資料列刪除了,只做了Datagridview的UserDeletedRow 事件,針對Datatable的DataRow資料的筆數抓取,卻忘了更改Datatable。
所以因該用這個方法來對DataTable做更新:
DataTable.AcceptChanges 方法
AcceptChanges 以來對這個資料表所做的所有變更。
怎麼這一點居然忘了呢?
針對Datagridview的資料列刪除了,只做了Datagridview的UserDeletedRow 事件,針對Datatable的DataRow資料的筆數抓取,卻忘了更改Datatable。
所以因該用這個方法來對DataTable做更新:
DataTable.AcceptChanges 方法
AcceptChanges 以來對這個資料表所做的所有變更。
SqlCommandBuilder 可以幫我們節省很多撰寫 SelectCommand、InsertCommand、UpdateCommand、DeleteCommand 這幾個 SQL 陳述式的屬性,在開發上很方便,但效能上會有所差別。
Imports System.Data.SqlClient
Public Class Form1
Using connection As New SqlConnection(connectionString)
Dim talbe As New DataTable
Dim adapter As New SqlDataAdapter()
Dim sqlstr As String = _
"select * from product where (company like '模式')"
設定 SqlDataAdapter 的 SelectCommand 屬性,則可以建立 SqlCommandBuilder 物件來為單一資料表更新自動產生 Transact-SQL 陳述式。然後,任何未設定的其他 Transact-SQL (INSERT、UPDATE 或 DELETE) 陳述式會由SqlCommandBuilder 產生。
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
adapter.SelectCommand = New SqlCommand(sqlstr, connection)
conn.Open()
adapter.Fill(talbe)
DataGridView1.DataSource = Table
conn.Close()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim cb As New SqlCommandBuilder(adapter)
Dim count As Integer = da.Update(talbe)
MessageBox.Show(count)
End Class
建立datatable
Dim mytable As New DataTable
建立欄位
Dim mycolumn As New DataColumn
設定 DataColumn物件的各個屬性以定義欄位的結構描述
mycolumn.DataType = System.Type.GetType("System.Int32")
將欄位加入至欄位集合中
mytable.Columns.Add(mycolumn)
呼叫資料列集合(亦即DataRowCollection)的add方法將已指派資料值的DataRow物件新增至資料列集合中。
建立新的DataRow對象,並添加到DataTable中
mytable.Rows.Add(mytable.NewRow())
mytable.Rows.Add(mytable.NewRow())
將資料值將指派給新資料列的各個欄位
mytable.Rows(0)(0) = 1
mytable.Rows(1)(0) = 2
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
'== 右移 ==
Dim a As Integer = 0
For i As Integer = 0 To (ListBox1.Items.Count - 1)
If ListBox1.Items(i).Selected Then '==判定哪一個子選項被點選了。
ListBox2.Items.Add(ListBox1.Items(i).Text)
a = a + 1
ListBox1.Items.Remove(ListBox1.Items(i).Text)
'==被搬移走了,這個子選項就該移除!
End If
Next
If a = 0 Then
Label1.Text = "<font color=red>警告!您未點選任何一個子選項</font>"
Else
Label1.Text = "<font color=blue>移動成功</font>"
End If
End Sub
========================================================================================
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
'== 左移 ==
Dim b As Integer = 0
For j As Integer = 0 To (ListBox2.Items.Count - 1)
If ListBox2.Items(j).Selected Then '==判定哪一個子選項被點選了。
ListBox1.Items.Add(ListBox2.Items(j).Text)
b = b + 1
ListBox2.Items.Remove(ListBox2.Items(j).Text)
'==被搬移走了,這個子選項就該移除!
End If
Next
If b = 0 Then
Label2.Text = "<font color=red>警告!您未點選任何一個子選項</font>"
Else
Label2.Text = "<font color=green>移動成功</font>"
End If
End Sub