<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net%2FDatabase_ADO.net%2FDataSet_Update</id>
		<title>VB.Net/Database ADO.net/DataSet Update - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net%2FDatabase_ADO.net%2FDataSet_Update"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/Database_ADO.net/DataSet_Update&amp;action=history"/>
		<updated>2026-04-05T17:35:17Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net/Database_ADO.net/DataSet_Update&amp;diff=636&amp;oldid=prev</id>
		<title> в 16:40, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/Database_ADO.net/DataSet_Update&amp;diff=636&amp;oldid=prev"/>
				<updated>2010-05-26T16:40:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 16:40, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net/Database_ADO.net/DataSet_Update&amp;diff=637&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/Database_ADO.net/DataSet_Update&amp;diff=637&amp;oldid=prev"/>
				<updated>2010-05-26T12:44:44Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Modify Data table: add a row and update a cell==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Data&lt;br /&gt;
Imports System.Data.SqlClient&lt;br /&gt;
&lt;br /&gt;
public class MainClass&lt;br /&gt;
   Shared Sub Main()&lt;br /&gt;
      Dim thisConnection As New SqlConnection(&amp;quot;server=(local)\SQLEXPRESS;&amp;quot; &amp;amp; _&lt;br /&gt;
          &amp;quot;integrated security=sspi;database=MyDatabase&amp;quot;)&lt;br /&gt;
      &amp;quot; Sql Query &lt;br /&gt;
      Dim sql As String = &amp;quot;SELECT * FROM Employee&amp;quot;&lt;br /&gt;
      Try&lt;br /&gt;
         &amp;quot; Create Data Adapter&lt;br /&gt;
         Dim da As New SqlDataAdapter&lt;br /&gt;
         da.SelectCommand = New SqlCommand(sql, thisConnection)&lt;br /&gt;
         &amp;quot; Create and fill Dataset&lt;br /&gt;
         Dim ds As New DataSet&lt;br /&gt;
         da.Fill(ds, &amp;quot;Employee&amp;quot;)&lt;br /&gt;
         &amp;quot; Get the Data Table&lt;br /&gt;
         Dim dt As DataTable = ds.Tables(&amp;quot;Employee&amp;quot;)&lt;br /&gt;
         &amp;quot; Display Rows Before Changed&lt;br /&gt;
         Console.WriteLine(&amp;quot;Before altering the dataset&amp;quot;)&lt;br /&gt;
         For Each row As DataRow In dt.Rows&lt;br /&gt;
            Console.WriteLine(&amp;quot;{0} | {1} | {2}&amp;quot;, _&lt;br /&gt;
               row(&amp;quot;ID&amp;quot;).ToString().PadRight(10), _&lt;br /&gt;
               row(&amp;quot;FirstName&amp;quot;).ToString().PadRight(10), _&lt;br /&gt;
               row(&amp;quot;LastName&amp;quot;))&lt;br /&gt;
         Next&lt;br /&gt;
         &amp;quot; FirstName column should be nullable&lt;br /&gt;
         dt.Columns(&amp;quot;FirstName&amp;quot;).AllowDBNull = True&lt;br /&gt;
         &amp;quot; Modify city in first row&lt;br /&gt;
         dt.Rows(0)(&amp;quot;FirstName&amp;quot;) = &amp;quot;Birm&amp;quot;&lt;br /&gt;
         &amp;quot; Add A Row&lt;br /&gt;
         Dim newRow As DataRow = dt.NewRow()&lt;br /&gt;
         newRow(&amp;quot;ID&amp;quot;) = &amp;quot;99&amp;quot;&lt;br /&gt;
         newRow(&amp;quot;FirstName&amp;quot;) = &amp;quot;Ever&amp;quot;&lt;br /&gt;
         newRow(&amp;quot;LastName&amp;quot;) = &amp;quot;Dame&amp;quot;&lt;br /&gt;
         dt.Rows.Add(newRow)&lt;br /&gt;
         &amp;quot; Display Rows After Alteration&lt;br /&gt;
         Console.WriteLine(&amp;quot;=========&amp;quot;)&lt;br /&gt;
         Console.WriteLine(&amp;quot;After altering the dataset&amp;quot;)&lt;br /&gt;
         For Each row As DataRow In dt.Rows&lt;br /&gt;
            Console.WriteLine(&amp;quot;{0} | {1} | {2}&amp;quot;, _&lt;br /&gt;
               row(&amp;quot;ID&amp;quot;).ToString().PadRight(10), _&lt;br /&gt;
               row(&amp;quot;FirstName&amp;quot;).ToString().PadRight(10), _&lt;br /&gt;
               row(&amp;quot;LastName&amp;quot;))&lt;br /&gt;
         Next&lt;br /&gt;
      Catch ex As SqlException&lt;br /&gt;
         &amp;quot; Display error&lt;br /&gt;
         Console.WriteLine(&amp;quot;Error: &amp;quot; &amp;amp; ex.ToString())&lt;br /&gt;
      Finally&lt;br /&gt;
         &amp;quot; Close Connection&lt;br /&gt;
         thisConnection.Close()&lt;br /&gt;
         Console.WriteLine(&amp;quot;Connection Closed&amp;quot;)&lt;br /&gt;
      End Try&lt;br /&gt;
   End Sub&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Set new cell value in DataSet==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Collections&lt;br /&gt;
Imports System.Data&lt;br /&gt;
Imports System.IO&lt;br /&gt;
Imports System.Xml.Serialization&lt;br /&gt;
Imports System.Xml&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Data.SqlClient&lt;br /&gt;
Imports System.Data.OleDb&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    Shared Sub Main()&lt;br /&gt;
        Dim form1 As Form = New Form1&lt;br /&gt;
        Application.Run(form1)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Public Class Form1&lt;br /&gt;
    Inherits System.Windows.Forms.Form&lt;br /&gt;
#Region &amp;quot; Windows Form Designer generated code &amp;quot;&lt;br /&gt;
    Public Sub New()&lt;br /&gt;
        MyBase.New()&lt;br /&gt;
        &amp;quot;This call is required by the Windows Form Designer.&lt;br /&gt;
        InitializeComponent()&lt;br /&gt;
        &amp;quot;Add any initialization after the InitializeComponent() call&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
        If disposing Then&lt;br /&gt;
            If Not (components Is Nothing) Then&lt;br /&gt;
                components.Dispose()&lt;br /&gt;
            End If&lt;br /&gt;
        End If&lt;br /&gt;
        MyBase.Dispose(disposing)&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
    Private components As System.ruponentModel.IContainer&lt;br /&gt;
    &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
    &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
    &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
    Friend WithEvents button1 As System.Windows.Forms.Button&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; Private Sub InitializeComponent()&lt;br /&gt;
        Me.button1 = New System.Windows.Forms.Button()&lt;br /&gt;
        Me.SuspendLayout()&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;button1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.button1.Font = New System.Drawing.Font(&amp;quot;Microsoft Sans Serif&amp;quot;, 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))&lt;br /&gt;
        Me.button1.Location = New System.Drawing.Point(10, 8)&lt;br /&gt;
        Me.button1.Name = &amp;quot;button1&amp;quot;&lt;br /&gt;
        Me.button1.Size = New System.Drawing.Size(240, 64)&lt;br /&gt;
        Me.button1.TabIndex = 1&lt;br /&gt;
        Me.button1.Text = &amp;quot;Update a record&amp;quot;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;Form1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)&lt;br /&gt;
        Me.ClientSize = New System.Drawing.Size(260, 81)&lt;br /&gt;
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.button1})&lt;br /&gt;
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle&lt;br /&gt;
        Me.MaximizeBox = False&lt;br /&gt;
        Me.MinimizeBox = False&lt;br /&gt;
        Me.Name = &amp;quot;Form1&amp;quot;&lt;br /&gt;
        Me.Text = &amp;quot;Row Updating&amp;quot;&lt;br /&gt;
        Me.ResumeLayout(False)&lt;br /&gt;
    End Sub&lt;br /&gt;
#End Region&lt;br /&gt;
        Dim dbConn As New SqlConnection(&amp;quot;Server=(local)\SQLEXPRESS;Initial Catalog=MyDatabase;Integrated Security=SSPI&amp;quot;)&lt;br /&gt;
    Dim WithEvents da As New SqlDataAdapter(&amp;quot;SELECT ID, FirstName, LastName FROM Employee&amp;quot;, dbConn)&lt;br /&gt;
    Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click&lt;br /&gt;
        Dim cb As New SqlCommandBuilder(da)&lt;br /&gt;
        Dim ds As New DataSet(&amp;quot;Employee&amp;quot;)&lt;br /&gt;
        da.Fill(ds)&lt;br /&gt;
        ds.Tables(0).Rows(0)(&amp;quot;ID&amp;quot;) = &amp;quot;1&amp;quot;&lt;br /&gt;
        da.Update(ds.GetChanges())&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Private Sub da_RowUpdating(ByVal sender As Object, _&lt;br /&gt;
                               ByVal e As SqlRowUpdatingEventArgs) _&lt;br /&gt;
                               Handles da.RowUpdating&lt;br /&gt;
        &amp;quot; Only perform processing if this is an UPDATE statement&lt;br /&gt;
        If (e.StatementType = StatementType.Update) Then&lt;br /&gt;
            &amp;quot; Check that the original record is not changed&lt;br /&gt;
            Dim strSQL As String = &amp;quot;SELECT ID, FirstName, LastName &amp;quot; &amp;amp; _&lt;br /&gt;
                                   &amp;quot;FROM Employee WHERE &amp;quot;&lt;br /&gt;
            strSQL &amp;amp;= &amp;quot;ID=&amp;quot;&amp;quot; &amp;amp; e.Row(&amp;quot;ID&amp;quot;, DataRowVersion.Original)&lt;br /&gt;
            strSQL &amp;amp;= &amp;quot;&amp;quot; AND &amp;quot;&lt;br /&gt;
            strSQL &amp;amp;= &amp;quot;FirstName=&amp;quot;&amp;quot; &amp;amp; e.Row(&amp;quot;FirstName&amp;quot;, DataRowVersion.Original)&lt;br /&gt;
            strSQL &amp;amp;= &amp;quot;&amp;quot; AND &amp;quot;&lt;br /&gt;
            strSQL &amp;amp;= &amp;quot;LastName=&amp;quot;&amp;quot; &amp;amp; e.Row(&amp;quot;LastName&amp;quot;, DataRowVersion.Original) &amp;amp; &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
            &amp;quot; Open the connection&lt;br /&gt;
            dbConn.Open()&lt;br /&gt;
            &amp;quot; Create a command to retrieve the number of records affected&lt;br /&gt;
            Dim cmm As New SqlCommand(strSQL, dbConn)&lt;br /&gt;
            &amp;quot; If the number of records retrieved is zero, the record has changed&lt;br /&gt;
            If (cmm.ExecuteNonQuery() = 0) Then&lt;br /&gt;
                &amp;quot; Display the confirm message&lt;br /&gt;
                If (MessageBox.Show(&amp;quot;The record you are attempting to modify has &amp;quot; &amp;amp; _&lt;br /&gt;
                                    &amp;quot;already changed by another user. Do you &amp;quot; &amp;amp; _&lt;br /&gt;
                                    &amp;quot;want to overwrite it?&amp;quot;, &amp;quot;Update&amp;quot;, _&lt;br /&gt;
                                    MessageBoxButtons.YesNo) = DialogResult.No) Then&lt;br /&gt;
                    &amp;quot; Skip the update for the current row&lt;br /&gt;
                    e.Status = UpdateStatus.SkipCurrentRow&lt;br /&gt;
                End If&lt;br /&gt;
            End If&lt;br /&gt;
            &amp;quot; Close the connection&lt;br /&gt;
            dbConn.Close()&lt;br /&gt;
        End If&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Update a row in DataSet update event==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Collections&lt;br /&gt;
Imports System.Data&lt;br /&gt;
Imports System.IO&lt;br /&gt;
Imports System.Xml.Serialization&lt;br /&gt;
Imports System.Xml&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Data.SqlClient&lt;br /&gt;
Imports System.Data.OleDb&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    Shared Sub Main()&lt;br /&gt;
        Dim form1 As Form = New Form1&lt;br /&gt;
        Application.Run(form1)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Public Class Form1&lt;br /&gt;
    Inherits System.Windows.Forms.Form&lt;br /&gt;
#Region &amp;quot; Windows Form Designer generated code &amp;quot;&lt;br /&gt;
    Public Sub New()&lt;br /&gt;
        MyBase.New()&lt;br /&gt;
        &amp;quot;This call is required by the Windows Form Designer.&lt;br /&gt;
        InitializeComponent()&lt;br /&gt;
        &amp;quot;Add any initialization after the InitializeComponent() call&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
        If disposing Then&lt;br /&gt;
            If Not (components Is Nothing) Then&lt;br /&gt;
                components.Dispose()&lt;br /&gt;
            End If&lt;br /&gt;
        End If&lt;br /&gt;
        MyBase.Dispose(disposing)&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
    Private components As System.ruponentModel.IContainer&lt;br /&gt;
    &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
    &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
    &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
    Friend WithEvents button1 As System.Windows.Forms.Button&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; Private Sub InitializeComponent()&lt;br /&gt;
        Me.button1 = New System.Windows.Forms.Button()&lt;br /&gt;
        Me.SuspendLayout()&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;button1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.button1.Font = New System.Drawing.Font(&amp;quot;Microsoft Sans Serif&amp;quot;, 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))&lt;br /&gt;
        Me.button1.Location = New System.Drawing.Point(10, 8)&lt;br /&gt;
        Me.button1.Name = &amp;quot;button1&amp;quot;&lt;br /&gt;
        Me.button1.Size = New System.Drawing.Size(240, 64)&lt;br /&gt;
        Me.button1.TabIndex = 1&lt;br /&gt;
        Me.button1.Text = &amp;quot;Update a record&amp;quot;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;Form1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)&lt;br /&gt;
        Me.ClientSize = New System.Drawing.Size(260, 81)&lt;br /&gt;
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.button1})&lt;br /&gt;
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle&lt;br /&gt;
        Me.MaximizeBox = False&lt;br /&gt;
        Me.MinimizeBox = False&lt;br /&gt;
        Me.Name = &amp;quot;Form1&amp;quot;&lt;br /&gt;
        Me.Text = &amp;quot;Row Updating&amp;quot;&lt;br /&gt;
        Me.ResumeLayout(False)&lt;br /&gt;
    End Sub&lt;br /&gt;
#End Region&lt;br /&gt;
        Dim dbConn As New SqlConnection(&amp;quot;Server=(local)\SQLEXPRESS;Initial Catalog=MyDatabase;Integrated Security=SSPI&amp;quot;)&lt;br /&gt;
    Dim WithEvents da As New SqlDataAdapter(&amp;quot;SELECT ID, FirstName, LastName FROM Employee&amp;quot;, dbConn)&lt;br /&gt;
    Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click&lt;br /&gt;
        Dim cb As New SqlCommandBuilder(da)&lt;br /&gt;
        Dim ds As New DataSet(&amp;quot;Employee&amp;quot;)&lt;br /&gt;
        da.Fill(ds)&lt;br /&gt;
        ds.Tables(0).Rows(0)(&amp;quot;ID&amp;quot;) = &amp;quot;1&amp;quot;&lt;br /&gt;
        da.Update(ds.GetChanges())&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Private Sub da_RowUpdating(ByVal sender As Object, _&lt;br /&gt;
                               ByVal e As SqlRowUpdatingEventArgs) _&lt;br /&gt;
                               Handles da.RowUpdating&lt;br /&gt;
        &amp;quot; Only perform processing if this is an UPDATE statement&lt;br /&gt;
        If (e.StatementType = StatementType.Update) Then&lt;br /&gt;
            &amp;quot; Check that the original record is not changed&lt;br /&gt;
            Dim strSQL As String = &amp;quot;SELECT ID, FirstName, LastName &amp;quot; &amp;amp; _&lt;br /&gt;
                                   &amp;quot;FROM Employee WHERE &amp;quot;&lt;br /&gt;
            strSQL &amp;amp;= &amp;quot;ID=&amp;quot;&amp;quot; &amp;amp; e.Row(&amp;quot;ID&amp;quot;, DataRowVersion.Original)&lt;br /&gt;
            strSQL &amp;amp;= &amp;quot;&amp;quot; AND &amp;quot;&lt;br /&gt;
            strSQL &amp;amp;= &amp;quot;FirstName=&amp;quot;&amp;quot; &amp;amp; e.Row(&amp;quot;FirstName&amp;quot;, DataRowVersion.Original)&lt;br /&gt;
            strSQL &amp;amp;= &amp;quot;&amp;quot; AND &amp;quot;&lt;br /&gt;
            strSQL &amp;amp;= &amp;quot;LastName=&amp;quot;&amp;quot; &amp;amp; e.Row(&amp;quot;LastName&amp;quot;, DataRowVersion.Original) &amp;amp; &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
            &amp;quot; Open the connection&lt;br /&gt;
            dbConn.Open()&lt;br /&gt;
            &amp;quot; Create a command to retrieve the number of records affected&lt;br /&gt;
            Dim cmm As New SqlCommand(strSQL, dbConn)&lt;br /&gt;
            &amp;quot; If the number of records retrieved is zero, the record has changed&lt;br /&gt;
            If (cmm.ExecuteNonQuery() = 0) Then&lt;br /&gt;
                &amp;quot; Display the confirm message&lt;br /&gt;
                If (MessageBox.Show(&amp;quot;The record you are attempting to modify has &amp;quot; &amp;amp; _&lt;br /&gt;
                                    &amp;quot;already changed by another user. Do you &amp;quot; &amp;amp; _&lt;br /&gt;
                                    &amp;quot;want to overwrite it?&amp;quot;, &amp;quot;Update&amp;quot;, _&lt;br /&gt;
                                    MessageBoxButtons.YesNo) = DialogResult.No) Then&lt;br /&gt;
                    &amp;quot; Skip the update for the current row&lt;br /&gt;
                    e.Status = UpdateStatus.SkipCurrentRow&lt;br /&gt;
                End If&lt;br /&gt;
            End If&lt;br /&gt;
            &amp;quot; Close the connection&lt;br /&gt;
            dbConn.Close()&lt;br /&gt;
        End If&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use DataSet to query and update Row==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Xml&lt;br /&gt;
Imports System.Xml.Schema&lt;br /&gt;
Imports System.IO&lt;br /&gt;
Imports System.Data.OleDb&lt;br /&gt;
Imports System.Data.rumon&lt;br /&gt;
Imports System.Data&lt;br /&gt;
&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    &lt;br /&gt;
    Shared Sub Main()&lt;br /&gt;
        Dim dsUsers As New DataSet(&amp;quot;Employee&amp;quot;)&lt;br /&gt;
        Try&lt;br /&gt;
            &amp;quot; Define a connection object&lt;br /&gt;
            Dim dbConn As New OleDbConnection(&amp;quot;Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=Admin;Data Source=Employee.mdb&amp;quot;)&lt;br /&gt;
            &amp;quot; Create a data adapter to retrieve records from db&lt;br /&gt;
            Dim daUsers As New OleDbDataAdapter(&amp;quot;SELECT ID, FirstName, LastName FROM Employee&amp;quot;, dbConn)&lt;br /&gt;
            &amp;quot; Define each column to map&lt;br /&gt;
            Dim dcmUserID As New DataColumnMapping(&amp;quot;ID&amp;quot;, &amp;quot;EmployeeID&amp;quot;)&lt;br /&gt;
            Dim dcmFirstName As New DataColumnMapping(&amp;quot;FirstName&amp;quot;, &amp;quot;FirstName&amp;quot;)&lt;br /&gt;
            Dim dcmLastName As New DataColumnMapping(&amp;quot;LastName&amp;quot;, &amp;quot;LastName&amp;quot;)&lt;br /&gt;
            &amp;quot; Define the table containing the mapped columns&lt;br /&gt;
            Dim dtmUsers As New DataTableMapping(&amp;quot;Table&amp;quot;, &amp;quot;Employee&amp;quot;)&lt;br /&gt;
            dtmUsers.ColumnMappings.Add(dcmUserID)&lt;br /&gt;
            dtmUsers.ColumnMappings.Add(dcmFirstName)&lt;br /&gt;
            dtmUsers.ColumnMappings.Add(dcmLastName)&lt;br /&gt;
            &amp;quot; Activate the mapping mechanism&lt;br /&gt;
            daUsers.TableMappings.Add(dtmUsers)&lt;br /&gt;
            &amp;quot; Fill the dataset&lt;br /&gt;
            daUsers.Fill(dsUsers)&lt;br /&gt;
            &amp;quot; Set the primary key in order to use the Find() method&lt;br /&gt;
            &amp;quot; below.&lt;br /&gt;
            Dim dcaKey() As DataColumn = {dsUsers.Tables(0).Columns(&amp;quot;EmployeeID&amp;quot;)}&lt;br /&gt;
            dsUsers.Tables(0).PrimaryKey = dcaKey&lt;br /&gt;
            &amp;quot; Declare a command builder to create SQL instructions&lt;br /&gt;
            &amp;quot; to create and update records.&lt;br /&gt;
            Dim cb = New OleDbCommandBuilder(daUsers)&lt;br /&gt;
            &amp;quot; Update an existing record in the DataSet&lt;br /&gt;
            Dim r As DataRow = dsUsers.Tables(0).Rows.Find(1)&lt;br /&gt;
            If Not r Is Nothing Then&lt;br /&gt;
                r(&amp;quot;FirstName&amp;quot;) = &amp;quot;Venus&amp;quot;&lt;br /&gt;
                r(&amp;quot;LastName&amp;quot;) = &amp;quot;Williams&amp;quot;&lt;br /&gt;
                &amp;quot; Update the record even in the database&lt;br /&gt;
                daUsers.Update(dsUsers.GetChanges())&lt;br /&gt;
                &amp;quot; Align in-memory data with the data source ones&lt;br /&gt;
                dsUsers.AcceptChanges()&lt;br /&gt;
                &amp;quot; Print successfully message&lt;br /&gt;
                Console.WriteLine(&amp;quot;The record has been updated successfully.&amp;quot;)&lt;br /&gt;
            Else&lt;br /&gt;
                Console.WriteLine(&amp;quot;No record found...&amp;quot;)&lt;br /&gt;
            End If&lt;br /&gt;
        Catch ex As Exception&lt;br /&gt;
            &amp;quot; Reject DataSet changes&lt;br /&gt;
            dsUsers.RejectChanges()&lt;br /&gt;
            &amp;quot; An error occurred. Show the error message&lt;br /&gt;
            Console.WriteLine(ex.Message)&lt;br /&gt;
        End Try &lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;A href=&amp;quot;http://www.vbex.ru/Code/VBDownload/Employee.zip&amp;quot;&amp;gt;Employee.zip( 7 k)&amp;lt;/a&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>