PDA

View Full Version : گرفتن شماره رکورد از dataset



zehs_sha
دوشنبه 19 بهمن 1383, 13:08 عصر
سلام
من کلاسی دارم می خواهم شماره رکوردی که آلان dataset به آن اشاره می کند را برگردانم و چون کلاس است نمی توانم از BindingContext استفاده کنم چگونه می توانم شماره رکوردی که در dataset اشاره می کند را نشان می دهد و بتوان تغییر داد

سوال دوم
من می خواهم با استفاده از چند ریختی connection را به کلاسم پاس کنم که یا از نوع OleConnection یا SqlConnection یا غیره را پاس کنم از کدام کلاس مافوق می توانم استفاده کنم.

Farhad.B.S
دوشنبه 19 بهمن 1383, 13:43 عصر
دیتاست یک محفظه برای ذخیره و بازیابی داده ها در حالت آفلاینه ، بنابراین چیزی به نام رکورد فعلی وجود نداره. شما نیاز به ایجاد کلاسی داری که حرکت در رکورد ها رو تحت کنترل داشته باشه.


می خواهم با استفاده از چند ریختی connection را به کلاسم پاس کنم که یا از نوع OleConnection یا SqlConnection یا غیره را پاس کنم از کدام کلاس مافوق می توانم استفاده کنم.

SqlConnection ، OleDbConnection و سایر کانشکن های موجود اینترفیس IDbConnection رو پیاده سازی میکنند. کافیه پارامتری از نوع این اینترفیس داشته باشید.

zehs_sha
دوشنبه 19 بهمن 1383, 14:08 عصر
پس کلاس فرم چگونه از BindingContext استفاده می کند


شما نیاز به ایجاد کلاسی داری که حرکت در رکورد ها رو تحت کنترل داشته باشه.

آیا امکان این هست که برای من مثالی بزنید<

Farhad.B.S
دوشنبه 19 بهمن 1383, 14:50 عصر
کلاس BindingContext هم از همین روش استفاده میکنه .
به طور ساده برای آیتم های موجود در BindingContext یک پراپرتی با نام Position وجود داره که توسط استفاده کننده از کلاس مقدار دهی میشه و بعد با توجه به این پراپرتی اطلاعات از دیتاسورس با ایندکس متناظر خونده میشه.

یه نمونه ابتدایی میتونه به شکل زیر باشه :


public class DatasourceNavigator
{
private int mPosition;
private DataTable mDataSource;

public DatasourceNavigator()
{
mPosition = 0;
}


public DataTable DataSource
{
get
{return mDataSource;}

set
{mDataSource = value;}
}

public int Postion
{
get
{return mPosition;}

set
{mPosition = value;}
}


public object GetCurrent(int colIndex)
{
return this.mDataSource.Rows[this.mPosition][colIndex];
}

}