PDA

View Full Version : سوال در رابطه با dataset



rostamedastan
چهارشنبه 04 اردیبهشت 1387, 01:02 صبح
سلام علیکم
فرض کنید در selectcommand یک شیئ از نوع dataAdapter دستورات مربوط به رویه ای باشد که می خواهد قسمتی از اطلاعات جدول را delete کند سپس با استفاده از متد Fill آن را درون شیئ از نوع dataset بریزیم در این صورت در جدول شیء dataset چه اطلاعاتی قرار دارد؟
اطلاعاتی که حذف شده اند یا اطلاعات باقیمانده ؟
اصلا می خواستم ببینم چه هنگام اطلاعات را درون جدول شیئ از نوع dataset میریزیم آیا تنها هنگام بازیابی یک سری رکوردهای مشخص که با دستور select آنها را بازیابی کردیم یا مواردی مانند Update , Delete هم می شود؟

rostamedastan
چهارشنبه 04 اردیبهشت 1387, 20:53 عصر
کسی با dataset کار نمیکنه ؟

PC2st
چهارشنبه 04 اردیبهشت 1387, 21:19 عصر
فرض کنید در selectcommand یک شیئ از نوع dataAdapter دستورات مربوط به رویه ای باشد که می خواهد قسمتی از اطلاعات جدول را delete کند سپس با استفاده از متد Fill آن را درون شیئ از نوع dataset بریزیم در این صورت در جدول شیء dataset چه اطلاعاتی قرار دارد؟
منظورتون از "دستورات مربوط به رویه ای باشد" چیه؟
+ اگر منظورتون اینه که در خاصیت SelectCommand نام یک Stored Procedure (رویه یا روال ذخیره شده) رو بهش بدین، چون خودم هنوز امتحان نکردم!، قاعدتا در اینصورت وقتی که متد Fill صدا زده میشه، اون Stored Procedure اجرا میشه و رکوردها رو پاک میکنه و اگر اون Stored Procedure هیچ نتیجه ای رو بر نگردونه، در اینصورت جدول درون DataSet هم خالیه و با هیچ اطلاعاتی پر نمیشه.
+ اگر منظور این باشه که دستور DELETE (از دستورات SQL) رو به خاصیت SelectCommend میدین، تا رکوردها رو پاک کنه، در اینصورت فکر نمیکنم این کار انجام شدنی باشه و قاعدتا باید یک ارور و خطا بده.


اطلاعاتی که حذف شده اند یا اطلاعات باقیمانده ؟
اطلاعات حذف شده اند.


اصلا می خواستم ببینم چه هنگام اطلاعات را درون جدول شیئ از نوع dataset میریزیم آیا تنها هنگام بازیابی یک سری رکوردهای مشخص که با دستور select آنها را بازیابی کردیم یا مواردی مانند Update , Delete هم می شود؟
مواردی مانند Update, Delete هم میشه انجام داد.

همونطور که میدونی، شیئ DataAdapter چهار خاصیت SelectCommand و UpdateCommand و InsertCommand و DeleteCommand داره. هر کدوم از این خاصیتها میتونه توسط دستور متناظرش از SQL مقدار بگیره (و حاوی یک دستور باشه). همچین شی DataAdapter دو متد مهم یعنی Fill و Update رو داره. هر وقت که متد Fill رو صدا میزنی، دستور موجود در خاصیت SelectCommand اجرا میشه و شی DataSet (یا ...) توسط خروجی ناشی از دستور SELECT پر میشه. هر وقت متد Update رو صدا بزنی، بسته به نیاز، یکی از دستورات موجود در خاصیت های SelectCommand و DeleteCommand و InsertCommand اجرا میشه. یعنی اگه یه رکورد از جدول DataSet پاک بشه، پس از صدا زدن متد Update، دستور موجود در خاصیت DeleteCommand اجرا میشه و غیره.


کسی با dataset کار نمیکنه ؟
نمیدونم :بامزه: :لبخند: :-)

rostamedastan
چهارشنبه 04 اردیبهشت 1387, 21:43 عصر
منظورم این است که اگر storedprocedure را فراخوانی کنیم که تعدادی رکورد مورد نظر را حذف کند و آن را با متد Fill صدا بزنیم در اینصورت در جدول dataset چی هست ؟
متشکرم.

hdv212
چهارشنبه 04 اردیبهشت 1387, 21:53 عصر
منظورم این است که اگر storedprocedure را فراخوانی کنیم که تعدادی رکورد مورد نظر را حذف کند و آن را با متد Fill صدا بزنیم در اینصورت در جدول dataset چی هست ؟
متشکرم.
اطلاعاتی که Delete شدن که دیگه بازیابی نمیشن، اطلاعاتی که در DataSet ریخته میشه (fill میشه)، اطلاعات باقیمانده هستند.

gdevnb
چهارشنبه 04 اردیبهشت 1387, 22:00 عصر
شما با دستور delete یه سری رکورد رو پاک میکنی و بعد از اجرای دستور تعداد رکوردهایی که تغییر کرده رو بهتون بر میگردونه.
اونوقت چیو میخوای fill کنی.

rostamedastan
شنبه 07 اردیبهشت 1387, 11:42 صبح
متوجه شدم حالا چطور می توانم تعداد رکوردی رو که تغییر کرده بدست آورم؟

gdevnb
شنبه 07 اردیبهشت 1387, 23:01 عصر
SqlCommand com = newSqlCommand("Delete From table1", con);
int x = com.ExecuteNonQuery();