PDA

View Full Version : سوال: مشکل با دیتاتیبل استاتیک



mahdidabaghi
جمعه 04 مرداد 1392, 20:50 عصر
سلام خدمت دوستان و اساتید خودم
بنده دو تا دیتا تیبل دارم که هر دوی اونا به صورت public و static هستند


DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();

روند برنامه هم به صورتی هست که dt1 حین کار از دیتا پر میشه و با کلیک روی دکمه ای که تعبیه کردم اطلاعات اون در دیتاتیبل دومی ریخته میشه و dt1 برای گرفتن دیتاهای بعدی دوباره clear میکنم .یعنی به این شکل


dt2 = dt1;
dt1.Rows.clear();

مشکل من اینه وقتی dt1 رو به صورت بالا clear میکنم dt2 هم clear میشه.:گریه:
ولی من میخوام فقط dt1 clear شه.
سپاسگزار میشم بنده رو راهنمایی کنید چجوری این مشکل رو حل کنم

mahdidabaghi
جمعه 04 مرداد 1392, 21:51 عصر
دوستان نظری نبود؟؟؟:افسرده:

tree1371
جمعه 04 مرداد 1392, 23:56 عصر
چه کاریه ؟ چرا datatable رو کش نمی کنی ؟! خود سرور تا حدود 10 دقیقه فکر کنم اتومات دیتا تیبل رو کش می کنه اگر می خوای ااین کارو کنی باید اول با دیتا ریدر بخونی بریزی تو دیتا تیبل اینطوری نیازی به کلیر نیست و به سرورتم کمتر فشار میاد چون sqldatareader کش نمیشه و در هر postback صفر میشه

mahdidabaghi
شنبه 05 مرداد 1392, 00:09 صبح
چه کاریه ؟ چرا datatable رو کش نمی کنی ؟! خود سرور تا حدود 10 دقیقه فکر کنم اتومات دیتا تیبل رو کش می کنه اگر می خوای ااین کارو کنی باید اول با دیتا ریدر بخونی بریزی تو دیتا تیبل اینطوری نیازی به کلیر نیست و به سرورتم کمتر فشار میاد چون sqldatareader کش نمیشه و در هر postback صفر میشه
مهندس گرامی از پاسخت ممنون
ولی داستانی که من دارم پیاده سازی میکنم من رو به این سمت سوق داده.بنده دارم روی یه پروژه که تماما Jquery-Ajax هست کار میکنم برای این کار هم از Json و Web Service بهره میبرم و اگر آشنا باشین باید بدونین که برای فراخونی این وب سرویس ها توسط Json باید اونا رو Static تعریف کنم و لذا توابع و متغیرهای عضو اون رو هم بایستی Static تعریف کنم.
متدی که در پیش گرفتم ایجکسی- پس بحث post back منتفیه - همچنین زمان (طبق فرموده شما ده دقیقه) واسه این پروژه کارساز نیست.(ممکنه بالای ده دقیقه باشه)
باز هم ممنون.
اگه از اساتید و دوستان دیگه کسی راهکاری واسه این مشکل داره یه دنیا ممنون میشم

mahdidabaghi
شنبه 05 مرداد 1392, 01:08 صبح
یعنی این کار نشدنیه دوستان؟

General-Xenon
شنبه 05 مرداد 1392, 03:52 صبح
یعنی این کار نشدنیه دوستان؟

سلام ذوست من . برای اینکار که شما قصد انجام دادنش رو داری یک راه پیشنهاد میکنم.
یک Datatable به عنوان TEMP در نظر بگیر . برای خالی کردنش حالا از نوعی که میدونی Clear یا Row.Clear
protected void btnClearSecDatatable_Click(object sender, EventArgs e)
{
System.Data.DataTable dtTemp = new System.Data.DataTable();
foreach (System.Data.DataColumn dc in dt1.Columns)
{
dtTemp.Columns.Add(new System.Data.DataColumn() { ColumnName = dc.ColumnName });
}
dt2 = (System.Data.DataTable)dtTemp;
}

mahdidabaghi
شنبه 05 مرداد 1392, 10:52 صبح
مهندس بسیار ممنونم.به کمک کدی که دادین مشکلم حل شد