PDA

View Full Version : سوال: ریختن یک متغیر در یک کلاس



forodo
پنج شنبه 04 مهر 1392, 12:14 عصر
من یک قطعه کد دارم:

Program.ServisRequestID = inin.ToString();

که داخل Program به شکل زیر تعریف شده.

static string servisRequestID;
public static string ServisRequestID
{
get
{
return servisRequestID;
}
set
{
servisRequestID = value;
}
}

حالا من ServisRequestID رو از بانک اطلاعاتی می خونم و می خوام که داخل مثلاً متغیر DDD بریزه.
و اینجوری بنویسم:

Program.DDD = inin.ToString();

بعد خودش در داخل program بگرده و ServisRequestID رو که داخل DDD هست پیدا کنه و مقدار منو داخل اون قرار بده.
چطور می تونم همچین کاری بکنم؟
اگه منظورم رو درست بیان نکردم بفرمائید تا بیشتر توضیح بدم.

Mahmoud.Afrad
پنج شنبه 04 مهر 1392, 17:45 عصر
میتونی در قسمت set در همین پراپرتی ، داخل Value جستجو کنی و مقدار پیدا شده رو داخل servisRequestID بریزی.
یا اینکه
به جای پراپرتی ، یک متد استاتیک با یک پارامتر ورودی ایجاد کنی و داخل اون عملیات مورد نظرت رو انجام بدی و servisRequestID رو تغییر بدی.

forodo
پنج شنبه 04 مهر 1392, 19:04 عصر
میتونی در قسمت set در همین پراپرتی ، داخل Value جستجو کنی و مقدار پیدا شده رو داخل servisRequestID بریزی.
یا اینکه
به جای پراپرتی ، یک متد استاتیک با یک پارامتر ورودی ایجاد کنی و داخل اون عملیات مورد نظرت رو انجام بدی و servisRequestID رو تغییر بدی.
منظور من رو درست متوجه نشدید.
من در اصل باید بنویسم :

Program.ServisRequestID = inin.ToString();

ولی چون ServisRequestID رو از بانک اطلاعاتی می خونم نمی دونم که این چی هستش ممکن مثلاً MorakhasiID باشه.
حالا من می خوام وقتی MorakhasiID رو مثلاً از بانک اطلاعاتی خوندش بریزه داخل متغیر DDD.
و بعدش DDD رو اینجوری بذارم:

Program.DDD = inin.ToString();

وقتی اینکارو می کنم ایراد می گیره نمی دونم چه جوری باید بنویسمش.
نمی دونم خوب گفتم یا نه؟

Kubuntu
پنج شنبه 04 مهر 1392, 19:32 عصر
اصلن خوب نگفتی!!
امیدوارم باز مشکلت تو طراحی جداول نباشه!! :گریه:
سعی کن اسمهای متغیرات یه خورده با معنی باشه! واسه آینده خودت می گم :چشمک:

forodo
پنج شنبه 04 مهر 1392, 19:52 عصر
من توی کلاس program که واسه خود پروژه هستش هنچین چیزی دارم:

static class Program
{
//Back To Default => username;
static string username ="1" ;
static string permissionID;
static string permissionID2;
static string hourPermissonID;
static string servisRequestID;
static string servisRequestIDID;
static string servisRequestPeigiricode;
static string mosaedeID;
static string mosaedeHoghoghID;
static string computerServisID;
static string enterexittimeID;
static string mobilesharjID;
static string ticketRequestID;
static string officeDutyID;
static string dailyreportID;
static string reportapplyaddedhour;
static string machinecrashID;
static string addedhourID;
static string tahvileDaraiID;
static string kharidKalaID;
static string factorID;
static string mojavezRoozhayeTatil;
static string darkhastTaheiBelitID;
static string karkardMahyaneID;
static string gozareshMamooriatID;
static string ghateHamkariID;
static string estekhdamID;

هر کدوم از اینا واسه یک فرم.
یک فرمی دارم که اطلاعاتی از بانک اطلاعاتی به داخل دیتاگریدویو موجود در اون فرم می ره.
هنگامی که کاربر روی یکی از سطرهای دیتاگرید دوبارکلیک می کنه مقدار ID موجود در دیتاگریدی که روش کلیک شده به داخل مثلاً estekhdamID می ره.
بعد هنگامی که فرم خامی که مثلاً estekhdamID رو در اونجا استفاده می کنیم باز میشه مقدار موجود در اون در جایی از فرم استفاده میشه.

حالا من می خوام موقعی که اطلاعات فرم خام داره داخل بانک اطلاعاتی من ذخیره می شه، estekhdamID هم باهاش ذخیره بشه.
موقع فراخوانی من نمی دونم که حالا estekhdamID فراخوانی شده یا کدوم از متغیرهای بالا فراخوانی شده.

من باید مقداری رو در

Program.ServisRequestID = inin.ToString();

بریزم که نمی دونم اونی که از بانک گرفتم کدوم از متغیرهای بالاست.

پیش خودم گفتم خوب میریزم داخل یک مثلاً متغیر به نام DDD و بعد اون خط بالا رو اینجوری می نویسم:

Program.DDD = inin.ToString();

ولی اینطوری ایراد می گیره. نمی دونم که چه طوری باید بنویسمش.

امیدوارم خوب توضیح داده باشم.

Kubuntu
پنج شنبه 04 مهر 1392, 20:07 عصر
اولا سعی کن نگاهت برنامه نویسی و شیءگرایی باشه.
دوما اجازه بده هرچیز سرجای خودش باشه یعنی همه فرمها رو در یک کلاس خلاصه نکن. واسه هر فرم یک کلاس بذار.
وقتی شما داده رو داخل گرید ویو نشون می دی یعنی در دیتابیس وجود داره پس لزومی نداره دوباره وارد دیتابیس کنی.
در دیتاگریدویو تعدادی ستون وجود داره پس خیلی راحت از نام ستون می فهمی که مربوط به کدوم فرم هستش.
جواب سوال شما مفهومیه... یعنی خودت باید متوجه بشی که منطقا چه اشتباهی در تحلیلت وجود داره.

ثالثا گزینه تشکر واسه اینه ک وقتی کسی دیگه ک مشکل شما رو داره به تاپیک نگاه می کنه با توجه به تعداد تشکرهای داده شده به پست ها سریعتر به جواب مفید برسه.

موفق باشی

forodo
جمعه 05 مهر 1392, 09:38 صبح
لطفاً این برنامه رو نگاه کنید.
مشکل من درونش هست.

Mahmoud.Afrad
جمعه 05 مهر 1392, 10:27 صبح
نیازی به استاتیک کردن متغیرها نیست. کلاسهای مجزا برای موجودیت هات تعریف کن. برای اینکه متوجه بشی چه سطری از دیتاگرید در فرم دیگه انتخاب شده میتونی به تاپیکهایی که برای انتقال اطلاعات بین فرم ها زده شده مراجعه کنی.

forodo
جمعه 05 مهر 1392, 10:29 صبح
نیازی به استاتیک کردن متغیرها نیست. کلاسهای مجزا برای موجودیت هات تعریف کن. برای اینکه متوجه بشی چه سطری از دیتاگرید در فرم دیگه انتخاب شده میتونی به تاپیکهایی که برای انتقال اطلاعات بین فرم ها زده شده مراجعه کنی.
من اصلاً کاری با دیتاگرید ویو ندارم.
لطفاً برنامه ای که قرار دادم رو نگاه کنید اونوقت متوجه منظور بنده می شوید.

forodo
جمعه 05 مهر 1392, 16:04 عصر
دوستان برنامه رو نگاه کنید و مشکل برنامه رو بگید چه طور می تونم درست کنم.