Hi all, i'm using vb.net 2005, i have error message : "Update requires a valid UpdateCommand when passed DataRow collection with modified rows", this is my code:
I want to update my datatable into my database, i have no primary key, which i dont set it since the database is imported from another format. Any help appreciated!
Thanks in advance
VB.NET:
strSQL = "SELECT * FROM " & tblname
Dim sqladapter As New SqlDataAdapter(strSQL, oConnection)
Dim DS As New DataSet
sqladapter.Fill(DS)
Dim DT As New DataTable
DT = DS.Tables(0)
For i As Integer = 0 To DT.Rows.Count - 1
DT.Rows(i)("stanam") = stanam(DT.Rows(i)("PT"), DT.Rows(i)("KDST"), DT.Rows(i)("KDKB"), DT.Rows(i)("KDFL"), DT.Rows(i)("THTN"), DT.Rows(i)("BLTN"), thnbudget)
sqladapter.Update(DT)
Next
Private Function stanam(ByVal PT As String, ByVal KDST As String, ByVal KDKB As String, ByVal KDFL As String, ByVal THTN As String, ByVal BLTN As String, ByVal thnBudget As Integer) As String
Dim selisih As Double = 0.0
Dim nilai As Double = 0.0
Dim sem As Integer = 0
Dim stanam1 As String = ""
If BLTN <> "" Then
If Val(BLTN) <= 6 Then
nilai = 0.5
Else
nilai = 0.0
End If
End If
If PT = "DAN" And KDST = "3" And KDKB = "1" And (KDFL = "08A" Or KDFL = "08E" Or KDFL = "08D" Or KDFL = "08U" Or KDFL = "08T" Or KDFL = "08C" Or KDFL = "08B") And THTN = "2008" And BLTN = "4" Then
If ((Val(thnBudget) + nilai) - (Val(THTN))) <= 3.5 And ((Val(thnBudget) + nilai) - (Val(THTN))) > 1.5 Then
stanam1 = "TBM" + Str(Math.Ceiling((Val(thnBudget + nilai) - (Val(THTN)))) - 1)
ElseIf ((Val(thnBudget) + nilai) - (Val(THTN))) <= 1.5 Then
stanam1 = "TBM1"
Else
stanam1 = "TM"
End If
ElseIf PT = "SWA" And KDST = "KM" And KDKB = "2" And (KDFL = "08C" Or KDFL = "08D" Or KDFL = "08E") And THTN = "2008" And BLTN = "6" Then
If ((Val(thnBudget) + nilai) - (Val(THTN))) <= 3.5 And ((Val(thnBudget) + nilai) - (Val(THTN))) > 1.5 Then
stanam1 = "TBM" + Str(Math.Ceiling((Val(thnBudget + nilai) - (Val(THTN)))) - 1)
ElseIf ((Val(thnBudget) + nilai) - (Val(THTN))) <= 1.5 Then
stanam1 = "TBM1"
Else
stanam1 = "TM"
End If
Else
If ((Val(thnBudget) + nilai) - (Val(THTN))) <= 2.5 And ((Val(thnBudget) + nilai) - (Val(THTN))) > 0.5 Then
stanam1 = "TBM" + Str(Math.Ceiling((Val(thnBudget + nilai) - (Val(THTN)))))
ElseIf ((Val(thnBudget) + nilai) - (Val(THTN))) <= 0.5 Then
stanam1 = "TBM1"
Else
stanam1 = "TM"
End If
End If
Return stanam1
End Function
Thanks in advance