نقل قول: Data set و Data Adapter
سلام دوست عزیز.
خب باید خیلی خلاصه بگم که DataSet مجموعه ای از DataTable هاست.
حالا DataTable چیه؟ DataTable شی ای هست که یک جدول رو درون خودش نگهداری میکنه مثلا شما توی SQL میزنی SELECT * FROM master
حالا این دستور به شما یک جدول برمیگردونه و این جدول باید توی برنامه شما یک جایی ذخیره بشه یا Load بشه که وظیفه نگهداری این جدول بر عهده DataTable هست و وظیفه Load کردن این جدول درون DataTable هم بر عهده DataAdapter یا همون da هست. زمانی که شما از دستور Fill استفاده میکنی، DataAdapter دستورات داخل cmd رو به SQL ارسال میکنه و جواب رو در قالب یک جدول دریافت میکنه بعد جواب رو میریزه توی همون DataTable.
اما ds یا همون DataSet چیه؟
فرض کنید توی برنامه نیاز دارید که چندین جدول رو به کار ببرید میتونید از دو روش استفاده کنید.
اول اینکه چندین DataTable تعریف کنید :
DataTable dt_Master = new DataTable();
DataTable dt_Users = new DataTable();
.
.
.
DataTable dt_myTable = new DataTable();
.
.
da.Fill(dt_Master);
اینکار برای تعداد زیاد Table ها کمی نا معقوله پس باید از شی ای استفاده کرد که مجموعه ای (آرایه ای) از DataTable هاست. این شی DataSet هست.
کد بالا معادله کد زیر هستش:
DataSet ds = new DataSet();
ds.Table.Add("dt_Master");
ds.Table.Add("dt_Users");
.
.
.
ds.Table.Add("dt_myTable");
.
.
da.Fill(ds.Table["dt_Master]);
از DataSet به دو روش میتونی استفاده کنی :
اول همون روش ایندکس که شماره جدول رو بهش میدی مثل :
da.Fill(ds.Table[0]);
دوم استفاده از نام جدول مثل همون مثالی که من زدم.
در اینجا da دستورات رو اجرا کرده و اطلاعات رو از Data Base واکشی میکنه و اونارو توی جدولی که بهش میدیم میریزه. اون جدول باید از نوع DataTable باشه فرقی هم نمیکنه که از متغیر DataTable استفاده کنی یا از متغیر DataSet استفاده کنی.
در واقع DataSet مثل استفاده از آرایه ها میمونه.
دو دستور زیر با هم هیچ فرقی ندارن:
1:
String a;
a = "Hello";
2:
String[] a = new String[10];
a[0]="Hello";
امیدوارم خوب متوجه شده باشی.
موفق و پیروز باشی.
نقل قول: Data set و Data Adapter
ممنون از این پاسخ
ولی نگفتی چه جوری داده ها رو از Text Box به بانک اضافه کنم
نقل قول: Data set و Data Adapter
نقل قول:
نوشته شده توسط
mehran63
ممنون از این پاسخ
ولی نگفتی چه جوری داده ها رو از Text Box به بانک اضافه کنم
خواهش میکنم.
خیلی ساده با استفاده از دستورات SQL میتونی اینکارو بکنی.
یک نمونه مثال میزنم.
cmd.CommandText = "INSERT INTO myTable(FName, LName, Tel, Gender) VALUES('"
+ txtFName.Text + "','"
+ txtLName.Text + "','"
+ txtTel.Text + "',"
+ cmbGender.SelectedIndex.ToString();
cmd.ExecuteNonQuery();
نقل قول: Data set و Data Adapter
این راه خیلی خوب و فکر کنم تنها راه اصولی هم باشه ولی راه دیگه ای هم هست
مثلا در VB6 از adodc استفاده میکردیم
در ضمن برای Delete و Update و ... هم میتوان از همین روش که شما نوشتید استفاده کرد و فقط دستورات رو تو " " دابل کوتیشن گذاشت ؟
نقل قول: Data set و Data Adapter
نقل قول:
نوشته شده توسط
mehran63
این راه خیلی خوب و فکر کنم تنها راه اصولی هم باشه ولی راه دیگه ای هم هست
مثلا در VB6 از adodc استفاده میکردیم
در ضمن برای Delete و Update و ... هم میتوان از همین روش که شما نوشتید استفاده کرد و فقط دستورات رو تو " " دابل کوتیشن گذاشت ؟
بله دوست عزیز برای تمامه دستورا میشه از همین روa استفاده کرد و هیچ محدودیتی نداره.
مثلا برای Delete :
cmd.CommandText = "DELETE FROM myTable WHERE ID = " + intID.ToString();
cmd.ExecuteNonQuery();
یا مثلا :
cmd.CommandText = "DELETE FROM myTable WHERE Gender = 1";
cmd.ExecuteNonQuery();
و برای ویرایش هم :
cmd.CommandText = "UPDATE myTable SET FName='"
+ txtFName.Text + "' WHERE ID=" + intID.ToString();
cmd.ExecuteNonQuery();