PDA

View Full Version : سوال: نگهداری اطلاعات datagridview



unique1984
پنج شنبه 28 آبان 1388, 20:42 عصر
با سلام
من می خوام اطلاعات گریدم رو یه جا ذخیره کنم و یکسری تغییرات روی گرید انجام بدم . بعد در صورتیکه این اطلاعاتو تائید نکردم ، مقادیر قبلی گرید ، جایگزین بشه.
برای انجام اینکار ، اطلاعات موجود در گرید رو در یک datatable ریختم . اما بعد از ریختن در datatable ، به محض کلیک روی گرید ، ارور میده!! ظاهرا ارتباطی بین گرید و دیتاتیبل برقرار میشه!!
مشکل از کجا می تونه باشه؟

sky_in_iran
پنج شنبه 28 آبان 1388, 23:24 عصر
سلام دوست عزيز
بهترين راه به نظر من استفاده از transaction اگر بانك sql هست اما اگر غير sql يا نميخواي از اين روش استفاده كني اطلاعات و زماني كه از بانكت مي خوني بريز تو datatable بعد datatable بريز تو grid اين بهتره تا اينكه اول بريزي تو grid و از grid بخوني اينجوري يه جورايي دوباره كاريه

unique1984
جمعه 29 آبان 1388, 10:04 صبح
ممنون .
اما گرید من اصلا به بانک وصل نیست!! من یکسری اطلاعات وارد گرید می کنم بعد با توجه به برقراری شرایط اونها رو در بانک ذخیره میکنم و در صورت عدم برقراری شرط باید اطلاعات قبلی گرید سرجاشون بشینند.

sky_in_iran
جمعه 29 آبان 1388, 12:34 عصر
دوست عزيز اگر منظور شما رو دورست فهميده باشم مي خواي اطلاعات و تو grid بريزي بعد اگر شرايط دورست بود تو بانك بريزي !!! اگر اينه خوب از transation استفاده كن كه اگر اطلاعات درست نبود roolback كنه ! اطلاعات و از گريد بخون بريز تو datatable بعد اطلاعاتو از datatable خط به خط بخون insert كن تو db اگر راهنماييم بازم كمكت نكرد لطفا كدتو بزار تا بهتر بتونم كمكت كنم

unique1984
شنبه 30 آبان 1388, 20:04 عصر
با تشکر
یه مقدار صورت مسئله تغییر کرد. اون اروری هم که قبلا عرض کردم یه مشکل خیلی کوچیک در گرید بود که رفع شد.
اما صورت مسله جدید.
به محض لود شدن فرم ، گرید با یک Datatable پر میشه . روی اطلاعات موجود در گرید تغییراتی انجام میگیره. کاربر از ثبت این اطلاعات منصرف میشه و با زدن یه دکمه باید اطلاعاتی که در زمان لود در گرید بود باز در گرید نشون داده بشه.
راهی که من رفتم:
در هنگام لود فرم ،علاوه بر اینکه اطلاعات دیتاتیبل اولیه رو در گرید میریزم، اونو در یک دیتاتیبل دیگه هم می ریزم تا بعدا در صورت انصراف از تغییرات دیتاتیبل دومی رو به گرید متصل کنم.

datagridview1.DataSource=dtMain;
dtSecond=dtMain
اما اتفاقی که می افته اینه که هر تغییری که در گرید انجام میشه در dtSecond هم صورت میگیره!!
چه باید کرد؟

unique1984
یک شنبه 01 آذر 1388, 16:46 عصر
دوستان! یه راهنمایی چیزی لطفا:لبخندساده:

saymon
یک شنبه 01 آذر 1388, 19:51 عصر
دوستان! یه راهنمایی چیزی لطفا:لبخندساده:
جفتش تغییر میکنه چون رفرنس هردو (dtmainوdtsecond)یکی است...من میگم دوباره همین را اگه لازم داری صدا بزن تا اطلاعات دوباره از dbخوانده شود یا با کمی فکر میتونی راهی پیدا کنی که رفرنس این دوتا یکی نشه