Imam ovakav kod u VB6 gde se krecem kroz recordset napred, nazad, neke redove brisem:
rs.MoveFirst
dd1 = rs!Datum1
dd2 = rs!Datum2
kat = rs!Kategorija
rs.MoveNext
Do While Not rs.EOF
If rs!Kategorija = kat Then
If rs!Datum1 = dd2 Then
dd2 = rs!Datum2
rs.Delete
rs.MovePrevious
rs!Datum2 = dd2
kat = rs!Kategorija
rs.Update
End If
rs.MoveNext
Loop
Sada ovo isto pisem u .NET c#, medjutim ne znam kako ovo funkcionise sa indexima jer ne dobijam dobar rezultat.
dd1=(DateTime )dt.Rows [0]["Datum1"];
dd2=(DateTime )dt.Rows [0]["Datum2"];
kat=dt.Rows [0]["Kategorija"].ToString ();
n = dt.Rows.Count;
for(int i =1; i<n ;i++)
{
string kategorija=dt.Rows ["Kategorija"].ToString ();
if (kategorija==kat)
{
pom = (DateTime)dt.Rows["Datum1"];
if(pom==dd2)
{
dd2=(DateTime )dt.Rows ["Datum2"];
dt.Rows .Delete ();
dt.AcceptChanges();
n = n - 1;
dt.Rows [i-1]["Datum2"]=dd2;
kat = dt.Rows[i-1]["Kategorija"].ToString();
}
}
}
dt.AcceptChanges ();
Ako izbrisem red i=15, gde se nalazi tekuci kursor posle AcceptChanges, da li je tekuci 14 ili 16.Kako se ovo nacelno resava, mnogo mi nedostaje MovePrevious i MoveNext gde ne vodim racuna o indexima.