[ oggie @ 07.07.2009. 13:56 ] @
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.
[ perun85 @ 07.07.2009. 16:16 ] @
U .netu je to vec reseno, povezi DataTable preko BindingSourcea sa BindingNavigatorom.

http://www.codeproject.com/KB/grid/BindSourceBindingNavCS.aspx
[ oggie @ 09.07.2009. 09:20 ] @
Nemam forme, radim u dll-u. Meni treba ovo da se uradi iz koda.
[ Mikelly @ 09.07.2009. 10:52 ] @
Da napravis BindingSource, na tvoju tabelu dt (C# varijanta):

Code:

BindingSource BS = new BindingSource(dt,"");


onda ides

BS.MoveNext(), MoveFirst()... itd.

I pazljivo sa AcceptChanges.

Pozdrav.