This is the first time I am working with sql server. when I try to update the table I get this error.

Update requires a valid InsertCommand when passed DataRow collection with new rows.

Can somebody help me ?
Thanks.

Here is my code:

Code:
Private Function CopyHeader(ByVal iAgentNo As Integer, ByVal lWkOrdNo As Long, ByVal lNewWkOrdNo As Long) As Boolean
        Dim sAdOrig As New SqlClient.SqlDataAdapter
        Dim sAdPreset As New SqlClient.SqlDataAdapter
        Dim sAdapter As New SqlClient.SqlDataAdapter
        Dim dSetOrig As New DataSet
        Dim dSetPreset As New DataSet
        Dim dSet As New DataSet
        Dim sSQLPreset As String
        'Dim iCounter As Integer
        Dim bResult As Boolean
        Dim maxRows As Integer


        bResult = False

        sSQLPreset = "SELECT * FROM PresetHeader WHERE t$agentno = " & iAgentNo
        SqlConnect(connString)
        sAdPreset = New SqlClient.SqlDataAdapter(sSQLPreset, conn)
        sAdPreset.Fill(dSetPreset, "PresetHeader")
        maxRows = dSetPreset.Tables("PresetHeader").Rows.Count

        

        If maxRows < 0 Then
            MessageBox.Show("Rep number '" & iAgentNo & "' is not set up in table 'PresetHeader'")
            Exit Function
        End If


        Dim sSQLOrig As String = "SELECT * FROM Baan_TTDSLS840100 WHERE T$WKORDNO = " & lWkOrdNo 'current order
        sAdOrig = New SqlClient.SqlDataAdapter(sSQLOrig, conn)
        sAdOrig.Fill(dSetOrig, "Baan_TTDSLS840100")
        'maxRows = dSetOrig.Tables("Baan_TTDSLS840100").Rows.Count

        'this will add a record that is a copy
        Dim sSQL As String = "SELECT * FROM Baan_TTDSLS840100"
        Dim cb As New SqlCommandBuilder(sAdapter)
        sAdapter = New SqlClient.SqlDataAdapter(sSQL, conn)
        sAdapter.Fill(dSet, "Baan_TTDSLS840100_New")


        Dim dsNewRow As DataRow

        Dim fld As Data.DataColumn


        dsNewRow = dSet.Tables("Baan_TTDSLS840100_New").NewRow()
        'iCounter = 0
        For Each fld In dSet.Tables("Baan_TTDSLS840100_New").Columns

            Select Case fld.ColumnName
                Case "T$WKORDNO"
                    dsNewRow.Item(fld.ColumnName) = lNewWkOrdNo
                Case "T$SOLDCUST"
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$SOLDCUST")
                Case "T$SOLDTSFX"
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$SOLDTSFX")
                Case "T$SOLDNAM1"
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$SOLDNAM1")
                Case "T$SOLDNAM2"
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$SOLDNAM2")
                Case "T$SOLDADD1"
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$SOLDADD1")
                Case "T$SOLDADD2"
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$SOLDADD2")
                Case "T$SOLDCITY"
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$SOLDCITY")
                Case "T$SOLDTOST"
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$SOLDTOST")
                Case "T$SOLDZIP1"
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$SOLDZIP1")
                Case "T$SOLDZIP2"
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$SOLDZIP2")
                Case "T$SOLDCNTR"
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$SOLDCNTR")
                Case "T$ORDDT" 'use today's date
                    dsNewRow.Item(fld.ColumnName) = Date.Now() 'Format(Now(), "mm/dd/yy")
                Case "T$STSPROGR" '-2 will print order
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$STSPROGR")
                Case "T$AGENTNO"
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$AGENTNO")
                Case "T$COMMRALL" 'need to determine how commissions will be handled
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$COMMRALL")
                Case "T$MSGTXT" 'this field needs to be cleared
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$MSGTXT")
                Case "T$TERMSOFP"
                    dsNewRow.Item(fld.ColumnName) = dSetPreset.Tables("PresetHeader").Rows(0).Item("T$TERMSOFP")
                Case "T$ORDTYPE"
                    If dSetOrig.Tables("Baan_TTDSLS840100").Rows(0).Item(fld.ColumnName) = "SST" Then
                        dsNewRow.Item(fld.ColumnName) = "STD"
                    ElseIf dSetOrig.Tables("Baan_TTDSLS840100").Rows(0).Item(fld.ColumnName) = "STD" Then
                        dsNewRow.Item(fld.ColumnName) = "SST"
                    End If
                Case Else 'just copy the other fields
                    dsNewRow.Item(fld.ColumnName) = dSetOrig.Tables("Baan_TTDSLS840100").Rows(0).Item(fld.ColumnName)
            End Select
            'iCounter = iCounter + 1
        Next fld
        dSet.Tables("Baan_TTDSLS840100_New").Rows.Add(dsNewRow)
        

        sAdapter.Update(dSet, "Baan_TTDSLS840100_New")

        conn.Close()
        sAdOrig = Nothing
        sAdPreset = Nothing
        sAdapter = Nothing
        dSet = Nothing
        dSetOrig = Nothing
        dSetPreset = Nothing

        bResult = True

        CopyHeader = bResult

    End Function