نمایش نتایج 1 تا 7 از 7

نام تاپیک: update کردن یک لیست اطلاعات

  1. #1
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    کاشان
    پست
    580

    Talking update کردن یک لیست اطلاعات

    سلام

    دوستان می خواستم نظرتون رو در مورد طریقه آپدیت کردن یک لیست بدونم . نوع این لیست کلاسی هست که 5 مورد رو درباره یک مقاله در خودش داره ( مثلا عنوان ، سال و ... )
    حالا کاربر می تونه این لیست رو تغییر بده . 4 نوع تغییر ممکنه انجام بشه .
    موردی که وجود داره تغییری نکنه .
    موردی که وجود داره حذف بشه .
    موردی که وجود داره تغییر کنه .
    یک مورد جدید اضافه بشه .
    حالا اگه یکی 200 تا مقاله داشته باشه ، به روش دستی و چک کردن تک تکشون و اینکه تو کدوم یک از حالات بالا هستن یکم غیر معقوله .
    از اساتید کسی راه بهتری برای آپدیت این لیست بلده ؟؟؟

  2. #2
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    آستارا-تهران
    پست
    357

    نقل قول: update کردن یک لیست اطلاعات

    دوست عزیز یکم واضح تر توضیح بده من که چیزی نفهمیدم.
    منظور از مورد چی هست؟
    نوع لیست چیست؟
    در لیست چه عناصری ذخیره میشه؟
    منظور از تغییر چیست؟

  3. #3
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    کاشان
    پست
    580

    نقل قول: update کردن یک لیست اطلاعات

    دوست خوبم سلام

    من یه کلاس دارم که مقاله رو مدل می کنه یعنی اعضای داده ای اون نام مقاله ، سال انتشار و ... هست .( من از معماری سه لایه استفاده می کنم که این لایه مدل مقاله است )
    من یک عضو در برنامم دارم که لیستی از مقالات رو برای اون ثبت کردم . حالا من می خوام مقالاتش رو Update کنم .
    List<Article_Model> artList = new List<Article_Model>();

    من این مقالات رو در لیستی به شکل بالا از بانک واکشی می کنم و حالا می خوام کاربر بتونه اونها رو تغییر بده یعنی یکیشو حذف کنه ، مقاله جدیدی اضافه کنه ، مشخصات یکی رو تغییر بده و یا هیچکدوم از این حالت ها .
    خوب ، اگه یه کاربر مثلا 200 تا مقاله داشت ، چک کردن اینکه یک مقاله چطور تغییر پیدا کرده و اعمال اون در بانک زمان گیره .
    می خوا بدونم روش یا متد یا شی نیست که خودش این ردیف ها رو نگهداره و بعد بفهمه که رو هر ردیف چه نوع تغییری صورت گرفته و بعد دستورات لازم رو اعمال کنه .
    یه چیزی مثل Dataset که اطلاعات رو نگه داره و تمام این کارها رو مدیریت کنه .
    اگر نیست آیا به نظر شما الگوریتم کارآمدی برای این کار وجود داه ؟؟؟

    راستی ممنون که جواب دادی !!!

  4. #4
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    آستارا-تهران
    پست
    357

    نقل قول: update کردن یک لیست اطلاعات

    با سلام
    خود دیتاست برای مدیریت این کارها به صورت زیر عمل می کنه.
    برای هر رکورد یک فلگ در نظر می گیره که نشان دهنده تغییراتی است که کاربر روی رکوردها انجام میده.
    مثلا اگه کاربر رکوردی اضافه کنه فلگ اون Added میشه و اگه ویرایش یا حذف کنه هم به همین ترتیب فلگ اونا مقدار میگیره.
    حالا موقع ذخیره کردن در پایگاه داده، میاد این فلگ ها رو بررسی می کنه و به تناسب هر رکورد عمل مناسب اونو انجام میده.
    حالا تو هم میتونی به این کلاست یه فلگ اضافه کنی و اعمال متداول رو بهش نسبت بدی.
    حواست باشه اگه یه رکوردی حذف شد نباید اونو حذف فیزیکی کنی بلکه باید فلگ اونو علامت بزنی و موقع ذخیره لیست در پایگاه داده این رکورد رو از پایگاه داده حذف کنی.
    توجه داشته باش که جدول تو حتما باید کلید اصلی داشته باشه.
    من کنترل یا کلاس خاصی که این کارها رو مدیریت کنه، نمی شناسم ولی الگوریتم کارآمد همینه که عرض کردم.
    البته یک کار راحت تر و غیر اصولی این هست که تمام اطلاعات این لیست رو از پایگاه داده حذف کنی و مقادیر جدید رو دوباره نویسی کنی. اگه تعداد رکوردها برای هر لیست مقدار کمی هست می تونی از این روش هم استفاده کنی.

  5. #5
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    1,025

    نقل قول: update کردن یک لیست اطلاعات

    برای این کار بهتره به جای جنریک از همون DataSet استفاده کنی
    فکر نمیکنم متد آماده ای باشه . باید متد های ثبت رو خودت بنویسی ولی با DataSet همه چیز اتوماتیک انجام میشه

  6. #6
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    کاشان
    پست
    580

    نقل قول: update کردن یک لیست اطلاعات

    یه بنده خدایی می گفت که من بیام از Dataset و SqlDataAdapter استفاده کنم . بعدش بیام Dataset رو به گرید Bind کنم . اینجوری تمام تغییرات در Dataset اعمال میشه . بعد در SqlDataAdapter ، 4 دستور مختلف رو بنویسم که رخ می ده و بعد فقط در هنگام زدن کلید Update خود به خود همه کار انجام بشه و هر ردیف بنا به تغییری که کرده یکی از دستورات انجام بشه .
    من که هر کار کردم ، نونستم چیزی که گفت بفهمم و انجام بدم ولی به نظر روش خوبی میاد .
    اکه این روشو متوجه شدید واسه منم بگین بفهمم !!!

    تشکر که جواب دادین .

  7. #7
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    1,025

    نقل قول: update کردن یک لیست اطلاعات

    دوست عزیز فکر کنم منظور اون بنده خدا این بوده که شما یه DataAdapter بسازی و توسط متد Fill یک دیتا ست رو پر کنی و از طریق متد Update تغییراتی رو که روی DataSet اعمال میشه تو بانک اطلاعاتی اعمال کنی این کار به این صورت انجام میشه

    شما میتونی تغییرات ایجاد شده تو یه DataTable یا یه DataSet رو به روش زیر به بانک منتقل کنی

    معرفی اشیا از کلاسهای مورد نیاز

    SqlConnection sqlConnection = new SqlConnection("Data Source=100.10.1.5;Initial Catalog=Attendence;Integrated Security=False;User ID=sa;Password=master");
    SqlCommand sqlCommand;
    SqlDataAdapter adapter;
    DataTable DT;


    انتقال اطلاعات به DataTable و نمایش اون توی گرید

    string sqlCmd = "Select * From Personel";
    sqlCommand = new SqlCommand(sqlCmd, sqlConnection);
    adapter = new SqlDataAdapter(sqlCommand);
    DT = new DataTable("Personel");
    adapter.Fill(DT);
    dataGridView1.DataSource = DT;


    ثبت تغییرات ایجاد شده در بانک


    sqlCommand = new SqlCommand("Select * From Personel", sqlConnection);
    SqlCommandBuilder sqlCmdBuilder = new SqlCommandBuilder(adapter);
    adapter.SelectCommand = sqlCommand;
    adapter.InsertCommand = sqlCmdBuilder.GetInsertCommand(true);
    adapter.UpdateCommand = sqlCmdBuilder.GetUpdateCommand(true);
    adapter.DeleteCommand = sqlCmdBuilder.GetDeleteCommand(true);
    adapter.Update(DT);


    با کد بالا اگه کاربر یک ردیف به گرید اضافه کنه یا حذف کنه و یا تغییری توی یک ردیف ایجاد کنه تمام این تغییرات با هم توی بانک اعمال میشه

    البته لازم به توضیح که در صورتی که ردیفی از گرید حذف بشه و اون رکورد توی یه جدول دیگه استفاده شده باشه (منظورم همون کلید خارجی) در این صورت موقع Update باید اون رو هم کنترل کنی

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •