PDA

View Full Version : سوال: مشکل در فایل resx



soaleman
شنبه 11 اسفند 1397, 14:44 عصر
با سلام خدمت دوستان
من در یکی از پروژه ها با مشکلی مواجه شدم که امیدوارم کسی باشه که به من کمک کنه
ممنون

اطلاعات اولیه:
در این پروژه جهت جلوگیری از تکرار کد های اضافی یکسری کامپوننت طراحی کردم که بعنوان نمونه یک Combo box رو آماده کردم و در آن یکسری کد های اولیه خواندن داده ای در دیتابیس رو آوردم که برای استفاده در روی فرم ها مجبور نباشم کدهای تکراری بزنم مثل تصویر زیر:

149853

اما مشکل بوجود آمده

به محض افزودن شی در فرم مقدار داده های فعلی پایگاه داده در فایل resx فرم قرار می گیرد حتی زمانی که این کد را از فایل resx پاک می کنیم به محض کوچکترین تغییر و یا اصلاح در فرم، مجددا داده های فعلی پایگاه داده در فایل resx فرم اضافه می شود به گونه ای که با افزودن مقادیر جدید حین کار در در پایگاه داده همیشه فرم از داده های اولیه هنگام کامپایل پروژه استفاده می کند و داده های افزوده شده به بانک نمایش داده نمی شود. (تصویر زیر)

149854

اما نکات:
نکته1: در ردیابی خطوط پروژه معلوم شد در زمان اجرا داده های جدید از بانک اطلاعاتی واکشی میشوند اما فرم تنها اطلاعات ذخیره شده در فایل resx را نمایش میدهد.
نکته2: این مشکل از زمانی ایجاد شد که برای فرمها 2زبان نمایش ایجاد گردید یعنی به ازای هر فرم 2تا فایل resx وجود دارد.

لطفا راهنمایی کنید
با تشکر

DANGER_BIGBOOS
شنبه 11 اسفند 1397, 15:53 عصر
./....................

soaleman
یک شنبه 12 اسفند 1397, 10:45 صبح
دوستان
کسی نیست بتونه راهنمایی کنه؟

DANGER_BIGBOOS
یک شنبه 12 اسفند 1397, 11:25 صبح
نه متاسفانه:قلب:

soaleman
دوشنبه 20 اسفند 1397, 10:41 صبح
سلام دوستان
اگر بابت راهنمایی هزینه ای هم مد نظر دارید بنده حاضرم پرداخت کنم
ممنون

farhad_shiri_ex
دوشنبه 20 اسفند 1397, 12:23 عصر
با سلام خدمت دوستان
من در یکی از پروژه ها با مشکلی مواجه شدم که امیدوارم کسی باشه که به من کمک کنه
ممنون

اطلاعات اولیه:
در این پروژه جهت جلوگیری از تکرار کد های اضافی یکسری کامپوننت طراحی کردم که بعنوان نمونه یک Combo box رو آماده کردم و در آن یکسری کد های اولیه خواندن داده ای در دیتابیس رو آوردم که برای استفاده در روی فرم ها مجبور نباشم کدهای تکراری بزنم مثل تصویر زیر:

149853

اما مشکل بوجود آمده

به محض افزودن شی در فرم مقدار داده های فعلی پایگاه داده در فایل resx فرم قرار می گیرد حتی زمانی که این کد را از فایل resx پاک می کنیم به محض کوچکترین تغییر و یا اصلاح در فرم، مجددا داده های فعلی پایگاه داده در فایل resx فرم اضافه می شود به گونه ای که با افزودن مقادیر جدید حین کار در در پایگاه داده همیشه فرم از داده های اولیه هنگام کامپایل پروژه استفاده می کند و داده های افزوده شده به بانک نمایش داده نمی شود. (تصویر زیر)

149854

اما نکات:
نکته1: در ردیابی خطوط پروژه معلوم شد در زمان اجرا داده های جدید از بانک اطلاعاتی واکشی میشوند اما فرم تنها اطلاعات ذخیره شده در فایل resx را نمایش میدهد.
نکته2: این مشکل از زمانی ایجاد شد که برای فرمها 2زبان نمایش ایجاد گردید یعنی به ازای هر فرم 2تا فایل resx وجود دارد.

لطفا راهنمایی کنید
با تشکر

سورس کدها خیلی واضح نیستند بهتر بود در صورت امکان قسمتهایی که مشکل دارید اینجا قرار میداید تا بشه بهتر تست کرد البته اسکریپت های دیتابیس فقط بخش هایی که لازم هم باید قرار بدید!
ولی دوتا نکته یک بهتر نبود شی data table را بع عنوان یک فیلد عضو کلاس تعریف میکردید و به صورت لوکال تعریف نشه و بهتر بود قسمت واکشی را هم از متد override شده جدا میکردید
ونکته دیگه هم اینکه الان اون try..catch دقیقا داره چیکار میکنه اصلا چه فایده ای داره وقتی شما هیچ exception را به صورت صریح تعریف نکردید!

soaleman
سه شنبه 21 اسفند 1397, 09:11 صبح
ممنونم از وقتی که برای بنده گذاشتید

1- از DataTable فقط بعنوان یک متغییر لوکال جهت پر کردن Datasource دارم استفاده میکنم.
2- در مورد override کاملا حق با شماست، من اینجا یادم رفت اصلاح کنم که این کلاس خودش از یک کلاس دیگه (System.Windows.Forms.ExtComboBox) داره Inherit میشه که من فراموش کردم اصلاح کنم پس اینجا نیاز دارم Override داشته باشم.
3- اما TryCatch در این کلاس فقط بخاطر این به این صورت نوشته شده که در زمان طراحی در صورت بروز اشکال در ارتباط با بانک اطلاعات بصورت لحظه به لحظه مدام خطایی رو بر نگردونه.
4- اما در خصوص مشخص کردن مشکل باید عرض کنم، پروژه، RuntimeError یا CompileError نداره فقط هنگام طراحی و یا اصلاح فرم، داده های فعلی دیتابیس، توسط Designer فرم واکشی میشه و در فایل resx(تصویر شماره2) جاگذاری می کنه و داده های جدیدی که در طول اجرای پروژه در جدول اضافه شده باشه رو دیگه نمایش داده نمیده و این درحالیه که داده های در زمان اجرا به DataSource کامبوباکس داره ارسال میشه!