من کد وی بی شو می ذارم
یه راهنمایی هم می کنم
بی زحمت تبدیلش کردی به سی شارپ بذار تو همین صفحه که استفاده بشه
Public Sub ReindexRecordsUpdateCode(tbl As String, HasMsg As Boolean, ttl As String, Optional ByVal dateFieldName As String = "date")
Dim db As ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = Nothing
Set db = New ADODB.Connection
db.CursorLocation = adUseClient
db.Open strDBConnectionString
Set rs = New ADODB.Recordset
' rs.Open "select code from " & tbl & " WHERE FT = " & lngCurrFinaTerm & " order by code ", db, adOpenStatic, adLockOptimistic
rs.Open "select * from " & tbl & " WHERE FT = " & lngCurrFinaTerm & " order by " & dateFieldName & ",code ", db, adOpenStatic, adLockOptimistic
Dim max, min, temp As Integer
Dim tmpDt As String, flgChange As Boolean
If rs.RecordCount > 0 Then
With rs
rs.MoveFirst
min = .Fields("code")
rs.MoveLast
max = .Fields("code")
If min < 0 Then
temp = max - min + 10
Else
temp = max + min + 1000
End If
.MoveFirst
Do Until .EOF = True
'If .Fields("code") < 0 Then
.Fields("code") = .Fields("code") + temp
.Update
.MoveNext
'Else
' GoTo nex
'End If
Loop
Dim i As Integer
i = 0
.MoveFirst
i = 0
Do Until .EOF
i = i + 1
.Fields("code") = i
.Update
.MoveNext
Loop
nex:
End With
If HasMsg Then farmsgbox "ok", vbOK, 4, "406"
Else
If HasMsg Then farmsgbox "NO", vbOK, 1, "406"
End If
'close data base
If db.State <> 0 Then
db.Close
End If
Set db = Nothing
With rs
If .State = 1 Then
.Close
End If
End With
End Sub