PDA

View Full Version : سوال: انجام کار با استفاده از تاریخ جاری سیستم



parviz_nba
سه شنبه 01 مرداد 1392, 23:04 عصر
سلام به دوستان.
من با روش persian calendar تاریخ جاری سیستمو بدست آوردمو اونو گداشتم تو یک label .
یک gridview دارم که یکی از ستوناش تاریخ اتمام قرارداد کارمندانه.
میخوام یکاری کنم که اگه تاریخ اتمام قرارداد "هر کدوم از افراد" به تاریخ جاری سیستم رسید، تو جدول بانک اطلاعاتیم فیلد "وضعیت کارمند" مقدار "اتمام قرارداد" بگیره.
2 تا مشکل اساسی دارم:
1) میخوام بدون انتخاب سطرها، اینکاری که گفتم انجام بشه. خودم با selected row انجام دادم، اما بدردم نمیخوره.
2) این کار بر اساس مثلا page load نباشه. چون ممکنه تو اون روز اصلا اون صفحه load نشه توسط کسی. و این یعنی از قرارداد کارمند گذشته ولی هنوز فعاله!
خیلی ممنون میشم راهنماییم کنید.

bomb23
چهارشنبه 02 مرداد 1392, 00:00 صبح
به نظر من تو databaset یه فیلد اضافه bool بذار که اگه طرف اتمام قرارداده fasle بشه و در رویداد بسته شدن فرمت یه سرچ بزن و اگه تاریخی گذشته اون فیلد رو update کن.

parviz_nba
چهارشنبه 02 مرداد 1392, 07:29 صبح
میشه بیشتر توضیح بدید؟؟؟ (با کد)

bomb23
چهارشنبه 02 مرداد 1392, 13:43 عصر
ببین اولا مثلا یه فیلد مثل IsValid از نوع bool به تیبلت اضافه کن. حالا تو فرم اصلی پروژت در رویداده FormClosing بررسی کن آیا تاریخ جاری سیستمت از فیلد تاریخ قرارداد طرف بیشتر هست یا نه اگه نبود IsValid رو False کن.

SqlConnection con = new SqlConnection(connectionString);

SqlDataReader dr;

System.DateTime date=new System.DateTime;
date=System.datetime.now;

string query = "Select from tbl where Date<'"+date+"'";

SqlCommand cmd = new SqlCommand(query, con);
con.Open();

dr = cmd.ExecuteReader();

if (dr.Read())
{
foreach(dr...)
{
SqlConnection con1 = new SqlConnection(Connection String);

string query1 = "update tbl set IsValid=@IsValid where ID='" + dr["ID"] + "'";

SqlCommand cmd1 = new SqlCommand(query1, con1);

cmd1.Parameters.AddWithValue("@IsValid", false);

con1.Open();

cmd1.ExecuteNonQuery();

}
}


حالا همیشه این فیلد رو بررسی کن و اعلام کن طرف قراردادش تموم شده.

parviz_nba
چهارشنبه 02 مرداد 1392, 21:18 عصر
تو asp.net رویداد formclosing هست؟؟ من تو #C دیدم اما تو asp نه.
درضمن تو sql server نوع داده bool وجود نداره.:ناراحت:
و اینکه من نمیخوام تاریخ از نوع datetime باشه. از نوع persian calendar گرفتم تاریخو.

bomb23
چهارشنبه 02 مرداد 1392, 22:46 عصر
اوه راست میگی ولی خب یه جا اضافه کن دیگه این مسئله سختی نیست.
تو sql به جای bool نوع bit هست.
خب تاریخ که من محاسبه کردمو اول تبدیلش کن به فارسی بعد مقایسه کن با تاریخ database خودت.

parviz_nba
پنج شنبه 03 مرداد 1392, 00:26 صبح
این روش شمارو فهمیدم، اما گیر اصلیم اینه که کدهارو تو کجا یا تو چه رویدادی تو asp بنویسم؟؟
مثلا انتخاب واحد دانشگاه رو فرض کن. دانشجو که مهلت انتخاب واحدش مثلا تا 1392/5/5 هست، چه وارد سایت دانشگاه بشه چه نشه بعد اون تاریخ نمیتونه انتخاب واحد کنه دیگه.
منم همچین چیزیو میخوام.
میشه تو sql تاریخ جاری سیستمو بدست آوردو بعد همونجا عملیات مقایسه تاریخ رو با تاریخ جاری سستم انجام داد؟؟؟

parviz_nba
پنج شنبه 03 مرداد 1392, 23:46 عصر
دوستان خواهشا کمکم کنید، خیلی واجبه......:افسرده::ناراحت:

bomb23
جمعه 04 مرداد 1392, 02:18 صبح
این سوال که پرسیدید خیلی ساده تره نیاز به اون دنگ و فنگ ها هم نداره.خب انتخاب واحد حتما یه فرم داره وقتی طرف بازش کرد یه If بذار تو فرم لود توش تاریخ سرورو با تاریخ دیتا بیس مقایسه کن اگه بیشتر بود یعنی وقت تموم شده و یه alert بده بعد response کن و else هیچی.

parviz_nba
جمعه 04 مرداد 1392, 09:02 صبح
bomb23 خیلی ممنون...:تشویق:
من زیاد سطح بالا گرفته بودم قضیه رو...:قهقهه:
مــــــــــــرســــــــــ ی.......

bomb23
جمعه 04 مرداد 1392, 13:07 عصر
خواهش میکنم موفق باشی:چشمک: