Listing 3: Code That Uses the RowUpdated Event to Return an Identity Value [BEGIN CALLOUT A] Dim sqlConnect As SqlConnection = New SqlConnection Private Sub AutoIncrInsertEventSql(ByVal sServer As String, _ ByVal sDB As String) Cursor.Current = Cursors.WaitCursor sqlConnect.ConnectionString = "SERVER=" & _ sServer & ";INTEGRATED SECURITY=True;DATABASE=" & sDB Dim sqlDA As SqlDataAdapter = New SqlDataAdapter( _ "SELECT * FROM Employees ORDER BY EmployeeID", sqlConnect) [END CALLOUT A] [BEGIN CALLOUT B] sqlDA.InsertCommand = New SqlCommand("INSERT INTO Employees" & _ "(LastName, FirstName, Title, Address, City, Region, " & _ "PostalCode) VALUES (@LastName, @FirstName, @Title, " & _ "@Address, @City, @Region, @PostalCode)", sqlConnect) sqlDA.InsertCommand.CommandType = CommandType.Text [END CALLOUT B] [BEGIN CALLOUT C] Dim ds = New DataSet Try sqlConnect.Open() sqlDA.Fill(ds, "Employees") [END CALLOUT C] [BEGIN CALLOUT D] Dim sqlParm = New SqlParameter sqlParm = sqlDA.InsertCommand.Parameters.Add( _ New SqlParameter("@LastName", SqlDbType.NChar, 20, _ "LastName")) sqlParm = sqlDA.InsertCommand.Parameters.Add( _ New SqlParameter("@FirstName", SqlDbType.NChar, 10, _ "FirstName")) sqlParm = sqlDA.InsertCommand.Parameters.Add( _ New SqlParameter("@Title", SqlDbType.NChar, 30, _ "Title")) sqlParm = sqlDA.InsertCommand.Parameters.Add( _ New SqlParameter("@Address", SqlDbType.NChar, 60, _ "Address")) sqlParm = sqlDA.InsertCommand.Parameters.Add( _ New SqlParameter("@City", SqlDbType.NChar, 15, _ "City")) sqlParm = sqlDA.InsertCommand.Parameters.Add( _ New SqlParameter("@Region", SqlDbType.NChar, 15, _ "Region")) sqlParm = sqlDA.InsertCommand.Parameters.Add( _ New SqlParameter("@PostalCode", SqlDbType.NChar, 10, _ "PostalCode")) [END CALLOUT D] [BEGIN CALLOUT E] Dim sqlDR = ds.Tables("Employees").NewRow() sqlDR("LastName") = "Jones" sqlDR("FirstName") = "James" sqlDR("Title") = "Sales Temp" sqlDR("Address") = "2111 First St" sqlDR("City") = "Portland" sqlDR("Region") = "OR" sqlDR("PostalCode") = "97234" ds.Tables("Employees").Rows.Add(sqlDR) [END CALLOUT E] [BEGIN CALLOUT F] AddHandler sqlDA.RowUpdated, New _ SqlRowUpdatedEventHandler(AddressOf OnRowUpdated) sqlDA.Update(ds, "Employees") sqlConnect.Close() Cursor.Current = Cursors.Default Catch e As Exception Cursor.Current = Cursors.Default MsgBox(e.Message) End Try End Sub [END CALLOUT F]