PDA

View Full Version : سوال: سوال درباره ADO.Net و Dataset



arya1348
دوشنبه 16 مرداد 1391, 22:00 عصر
سلام
من یه دیتا بیس دارم با 3 تا جدول به اسم های table1,table2,table3
یه Dataset ایجاد کردم به اسم myDS
حالا میخوام سه تا جدول دیتا بیس رو به طور کامل به دیتا ست منتقل کنم.
یعنی دیتا ست من با نام myDS سه تا جدول فوق را هم زمان با هم دارا باشه.
دوستان لطفا کمک کنن

mousa1992
دوشنبه 16 مرداد 1391, 22:12 عصر
سلام
جدول هاتو از دیتابیس بخون و در datatable بریز و با استفاده از متد Add دیتاست جدول هارو add کن

datatable dt;
// Fill dt From database
dataset ds= new dataset();
ds.Add(dt);

arya1348
چهارشنبه 25 مرداد 1391, 21:32 عصر
کد رو من به این صورت نوشتم:

string str_CONN = "provider=microsoft.jet.oledb.4.0; data source=AlZahra.mdb";
string str_SQL;

OleDbConnection conn = new OleDbConnection(str_CONN);
DataSet ds_alzahra = new DataSet();

str_SQL = "SELECT *FROM moshtarak order by sh_hesab Asc";
OleDbDataAdapter adapter1 = new OleDbDataAdapter(str_SQL, conn);

adapter1.Fill(ds_alzahra, "moshtarak");
DataTable dt_moshtarak = ds_alzahra.Tables["moshtarak"];

str_SQL = "SELECT *FROM groups order by parent_ID Asc";
OleDbDataAdapter adapter2 = new OleDbDataAdapter(str_SQL, conn);

adapter2.Fill(ds_alzahra, "groups");
DataTable dt_groups = ds_alzahra.Tables["groups"];


str_SQL = "SELECT *FROM ramz";
OleDbDataAdapter adapter3 = new OleDbDataAdapter(str_SQL, conn);

adapter3.Fill(ds_alzahra, "ramz");
DataTable dt_ramz = ds_alzahra.Tables["ramz"];

adapter1.Dispose();
adapter2.Dispose();
adapter3.Dispose();

dt_moshtarak.Dispose();
dt_groups.Dispose();
dt_ramz.Dispose();

حالا با این روش عین سه جدولی که توی دیتا بیس هست به دیتا ست منتقل شده
فکر میکنم کد رو بهتر و خلاصه تر از این میشه نوشت
دوستان اگه نظری دارن دریغ نکنند.:متفکر::متفکر::متفکر:

Mahmoud.Afrad
پنج شنبه 26 مرداد 1391, 10:18 صبح
نیاز به تعریف چند شئ دیتاآداپتر نیست از همون یکی استفاده کنید.

اون سه تا دیتاتیبل رو برای چی تعریف و پر کردید و در آخر dispose کردید. اصلا اگر قراره dispose بشند چرا تعریفشون کردید.

در ضمن وقتی شما از دیتاست استفاده میکنید دیگه نیازی به تعریف دیتاتیبل نیست. برای دسترسی به تیبل های درون دیتاست همون طور که خودتون نوشتید به این صورت مثلا ds_alzahra.Tables["ramz"] میتونید دسترسی داشته باشید.

using (OleDbConnection conn = new OleDbConnection("provider=microsoft.jet.oledb.4.0; data source=AlZahra.mdb"))
{
DataSet ds_alzahra = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT *FROM moshtarak order by sh_hesab Asc", conn);
adapter.Fill(ds_alzahra, "moshtarak");
adapter = new OleDbDataAdapter("SELECT *FROM groups order by parent_ID Asc", conn);
adapter.Fill(ds_alzahra, "groups");
adapter = new OleDbDataAdapter("SELECT *FROM ramz", conn);
adapter.Fill(ds_alzahra, "ramz");

adapter.Dispose();

// بایند ds_alzahra به هر چیزی
}