PDA

View Full Version : سوال: نحوه خواندن یک رکورد و ذخیره تغییرات در جدول دوم؟



mohammad_2039
یک شنبه 05 اردیبهشت 1389, 09:51 صبح
با سلام به دوستان محترم
من تو بانک یه جدول دارم که این فیلد هارو داره - عنوان هزینه، مبلغ، ضریب کل، جمع کل حالا میخوام این رکورد رو بخونم و اون رو با اعمال یه سری تغییرات در جدول دیگه ای ذخیره کنم. به این شکل که فرض کنید 10 عنوان هزینه وجود داره (که تو دیتا گرید هم نمایش میدیم) باید بین مثلا 5 تا زیر مجموعه تقسیم بشه. عناوین هزینه ها و مبلغ اونها ثابته اما ضریب و در نتیجه جمع کل واسه هر زیر مجموعه تغییر میکنه. کاربر فقط ضریب رو تغییر میده حالا باید جمع کل تغییر کنه و این عناوین هزینه با مقادیر جدید برای این زیر مجموعه در جدول دوم ذخیره بشه و نوبت زیر مجموعه بعدی برسه و الی آخر تا تمام اعتبار تقسیم بشه. اگه امکان داره راهنمایی بفرمایید این کارو چطوری انجام بدم بهتره . با تشکر فراوان:لبخندساده:

mohammad_2039
دوشنبه 06 اردیبهشت 1389, 07:10 صبح
از دوستان کسی نمیتونه راهنمایی کنه :گریه:

شاید بد جور توضیح دادم؟ ببینید تو فرم یه گرید ویو هست که یه اطلاعات کلی رو در مثلا 10 رکورد به عنوان هزینه ها با کل اعتبار مربوطه نمایش میده میخوام اینو بین زیر مجموعه ها تقسیم کنم. یه کمبو باکس داریم که زیر مجموعه رو از توش انتخاب میکنیم و یه تکس باکس که ضریب جدید رو میدیم. حالا باید هر 10 عنوان ضریب جدید روش اعمال بشه و با نام زیر مجموعه ای که انتخاب کردیم تو جدول دوم ذخیره بشه.

اوبالیت به بو
دوشنبه 06 اردیبهشت 1389, 09:22 صبح
حالا باید هر 10 عنوان ضریب جدید روش اعمال بشه و با نام زیر مجموعه ای که انتخاب کردیم تو جدول دوم ذخیره بشه.
از روش ذخیره سازی تراکنشی یا Transaction باید استفاده کنید.

s.khoshfekran
دوشنبه 06 اردیبهشت 1389, 10:26 صبح
foreach (DataRow dr in dt.dr)
{
if (dr.RowState == DataRowState.Modified)
{
///Do Something
}
}

mohammad_2039
دوشنبه 06 اردیبهشت 1389, 10:29 صبح
از روش ذخیره سازی تراکنشی یا Transaction باید استفاده کنید.

امکان داره یکم بیشتر توضیح بدید، اینو که فرمودید میدونم اما نمیدونم چطوری باید انجام بدم:ناراحت: اگه مقدور هست نمونه یا کد برام بذارید، متشکرم

s.khoshfekran
دوشنبه 06 اردیبهشت 1389, 10:38 صبح
DataTable dt2 = new DataTable();
DataTable dt = new DataTable();
foreach (DataRow dr in dt.Rows)
{
if (dr.RowState == DataRowState.Modified)
{
dt2.Rows.Add(dr);
}
}
foreach (DataRow dr in dt2.Rows)
{
//Insert in Database
}

mohammad_2039
دوشنبه 06 اردیبهشت 1389, 10:54 صبح
DataTable dt2 = newDataTable();
DataTable dt = newDataTable();
foreach (DataRow dr in dt.Rows)
{
if (dr.RowState == DataRowState.Modified)
{
dt2.Rows.Add(dr);
}
}
foreach (DataRow dr in dt2.Rows)
{
//Insert in Database
}


با تشکر از شما
من نمیخوام جدول اول رو تغییر بدم و بعد تغییرات جدول اول رو در دوم ذخیره کنم. فقط یه بار از جدول اول میخونم ببینم چی دارم ، بعد یه ضریب رو مقادیرش باید اعمال بشه و با نام جدید در جدول دوم ذخیره بشه ، دوباره یه ضریب دیگه به همون اولی بخوره و باز با یه نام دیگه در جدول دوم ذخیره بشه الی آخر. حالا نمیدونم با این کد شما چطوری میشه این کارو انجام داد:متفکر:

mohammad_2039
سه شنبه 07 اردیبهشت 1389, 07:53 صبح
از دوستان کسی میتونه روش "ذخیره سازی تراکنشی یا Transaction" رو توضیح بده لطفا.:ناراحت::افسرده:

mehdi_turbo
سه شنبه 07 اردیبهشت 1389, 08:40 صبح
تراکنش به شما این امکان را میده که یا عملیاتی به طور کامل انجام بشه یا هیچ کاری انجام نشه !

یعنی بر اساس درست بودن شرطی تغییرات ما در تمام بانک اعمال میشه یا تمام تغییرات به حالت اول برگردونده میشه