PDA

View Full Version : سوال: نمایش پیغام انجام کاری هنگام لودشدن



azam_mahdi
چهارشنبه 26 فروردین 1388, 10:47 صبح
سلام
من کدی را می خواهم زمانی که یک فرم لودشد پیغام بده امروز زمان انجام کاری است مثلا زمان پرداخت چک وغیره من از دیتا بیس استفاده کرده ام ولی حالا نمی دانم چه کدی بنویسم

NewFoxStudent
چهارشنبه 26 فروردین 1388, 11:18 صبح
شما کارهایی رو که قبلا معرفی شده یه جا ذخیره کردید هر کار یه تاریخ داره
حالا وقتی برنامه لود شد تاریخ فعلی سیستم رو بگیر و با تاریخ تمام کارهای موجود مقایسه کن.
برای هر رکورد اگه تاریخ برابر با تاریخ سیستم بود او رکورد رو انتخاب کن
و بعد رکورد های انتخاب شده رو نمایش بده
اگه مشکلت مقایسه تاریخ ها یا گرفتن تاریخ از سیستمه یه سر به تاپیک 1001 نکته در C# بزن
اونجا کدهای زیادی برای این کار هست

azam_mahdi
چهارشنبه 26 فروردین 1388, 15:41 عصر
سلام دوست عزیزم:
اگرامکان دارد مقداری دیگر مرا را راهنمایی کنید به نکته ها مراجعه کردم ولی متوجه نشدم یعنی اصلا نمی دانم ازچه چیزی باید استفاده کنم یعنی از ifیاswitchیاغیره وچطور کد بنویسم

NewFoxStudent
چهارشنبه 26 فروردین 1388, 16:11 عصر
فرض کنید میخواهیم کارهایی که زمان انجامشون رسیده رو نمایش بددیم


Select WorkItem From WorkList Where WorkTime = GetDate()
GetDate() توی Sql تاریخ جاریه سیستم رو برمیگردونه
با این دستورات کارهایی که تاریخشون با تاریخ امروز برابر هست رو از بانک اطلاعات انتخاب میکنیم

و رکوردهای انتخاب شده رو توی یه کنترل مثل لیست باکس یا گرید نمایش میدیم

به همین سادگی

azam_mahdi
چهارشنبه 26 فروردین 1388, 18:26 عصر
ببخشید من کدنویسی سی شارپ این موضوع را نمی دانم اگر امکان دارد مرا دوباره راهنمایی کنید

seven7777777
چهارشنبه 26 فروردین 1388, 18:46 عصر
دوست عزیز
اگه تازه برنامه نویسی رو شروع کردین بهتره یه نگاهی به آموزش های فارسی که در همین سایت بارها معرفی شده بندازین .
حتما کمک موثری برای شما خواهد بود .

اگر هم نمی دانید که چطور نتایج یافته شده رو با کدهای C# در برنامه نشون بدین ، اون یه بحث دیگس ، بگین تا بچه ها کمک کنند .

موفق باشید

azam_mahdi
جمعه 28 فروردین 1388, 16:20 عصر
سلام:
من هنوز دچار مشکل هستم اصلا نمی دانم چگونه از اطلاعاتی که در دیتا بیس هست می تونم برای نشان دادن پیغام استفاده کنم واینکه باید از حلقه یا چیز دیگر استفاده کنم کمکم کنید

azam_mahdi
شنبه 29 فروردین 1388, 08:01 صبح
سلام:
ببخشید اگه میشه مرا راهنمایی کنید

seven7777777
شنبه 29 فروردین 1388, 10:53 صبح
نمی دونم آموزش ها رو مطالعه کردید یا نه ؟
برای دسترسی به دیتابیست راه های مختلفی داری ، مثلا استفاده از dataset یا datareadr .

شما دو راه برای بدست آوردن رکوردهای مورد نظرت داری :
1. تو دستور select خودت رکوردهای تاریخ مرد نظرت رو جدا کنی .
2. تمام رکوردها رو بازیابی کنی و تو C# اونها رو جدا کنی .

البته نوع اول خیلی بهتره که کدش تو پست 4 هست .
فرض می کنیم از datarader استفاده می کنی . با کد زیر می تونی به ردیف هاش دسترسی داشته باشی :

while (reader1.read())
{
textbox1.text = reader1.getstring(0);
}
حالا اگه با reader هم آشنا نیستی بگو تا بچه ها کمک کنند .
اما در کل شما با یه دستور select ردیف های مورد نیازت رو از دیتابیست دراوردی . حلقه while مادامی که ردیف باشه می چرخه و متنی که تو دستورselect خودت واکشی کردی ( که همون کاری که باید در تاریخ جاری انجام بشه ) تو یه تکست باکس نمایش میده { البته کلا بهتره کارها رو تو یه datagridview نشون بدی } .

azam_mahdi
شنبه 29 فروردین 1388, 17:14 عصر
سلام:
ازشما دوست عزیز متشکرم باراهنمایی شما تونستم کارهایی انجام بدم ولی یک مشکل دیگه هم دارم زمانی که من از دستور selectدرsqlcommandاستفاده می کنم چگونه دستور where استفاده کنم؟
یعنی چگونه هرجایی که تاریخ سیستم با تاریخ هر وظیفه از دیتابیس برابر است رافیلتر کند؟

seven7777777
شنبه 29 فروردین 1388, 17:27 عصر
شما هم می تونید از دستور GetDate() خود sql برای این کار استفاده کنید و هم از datetime خود C# .
اگه از دستور خود sql استفاده کردید در ادامه متن دستور select خود where رو بنویسید همانند کد نوشته شده در پست 4 همین تاپیک .
اگرهم از C# استفاده میکنید باید آنرا به شکل زیر به دستور select خود پاس دهید .

SqlCommand com = new SqlCommand();
com.CommandText = "select work from works where workdate=@a";
com.Parameters.AddWithValue("@a",DateTime.Now.Date);

دیگه از هر راهی که می خوای برو .
راستی اگه تاریخت رو بصورت رشته ذخیره کردی اینا جواب نمیده ها !!!

NewFoxStudent
یک شنبه 30 فروردین 1388, 09:23 صبح
دوست عزیز این مسائلی که توی این تاپیک مطرح شده مفاهیم ابتدایی برنامه نویسیه بانک اطلاعاتیه
که به نظر میرسه اطلاعات شما در این زمینه بسیار محدود باشه
پیشنهاد میکنم قبل انجام هر پروژه ای حتی آزمایشی یه مطالعه کامل روی این مطالب انجام بدید و اگه در این زمینه نیاز به منبعی دارید بفرمایید تا معرفی کنم

azam_mahdi
یک شنبه 30 فروردین 1388, 10:11 صبح
دوستان عزیزم:
من در دیتابیس اطلاعات کمی دارم ومطا لبی را خوانده ام ودراین پروزه با راهنمایی شما دوستان کارهایی راانجام داده ام ودربرنامه یک warningدارم که نمی دانم برای چیست؟

ExecuteReader: Connection property has not been initialized.
من تاریخ سیستم راگرفته وبه شمسی تبدیل کردم وبعد کارهایی دردوپست قبل امده بودانجام دادم درمورد این warningمرا راهنمایی کنید
متشکرم

NewFoxStudent
یک شنبه 30 فروردین 1388, 13:02 عصر
شی SqlCommand که ساخته اید یک خاصیت داره به نام Connection که از خانواده SqlConnection و باید ست بشه و حتما باز باشه شما باید قبل از متدExecuteReader خاصیت Connection شی SqlCommand رو مقدار دهی کنید
به این صورت



SqlConnection sqlConnection = new SqlConnection(ConnectionString);
sqlCommand.Connection = sqlConnection;
sqlConnection.Open();
sqlCommand.ExecuteReader();

azam_mahdi
یک شنبه 30 فروردین 1388, 17:43 عصر
سلام
دوست عزیزم من همچنان این warning رادارم من قبلا sqlconnectionراتعریف کرده بودم ولی نمی دانم مشکل از کجا ست؟

NewFoxStudent
دوشنبه 31 فروردین 1388, 10:00 صبح
این خطا فقط مربوط به کانکشن اسکیوال و هیچ دلیل دیگه ای نداره
تکه کدتون رو اینجا بزارید تا اصلاح بشه

azam_mahdi
دوشنبه 31 فروردین 1388, 11:58 صبح
HijriCalendar HijriCalendar1 = new HijriCalendar();
DateTime date1= DateTime.Now.Date;
int Year = HijriCalendar1.GetYear(date1);
int Month = HijriCalendar1.GetMonth(date1);
int day = HijriCalendar1.GetDayOfMonth(date1);
String h = Year.ToString() + "\\" + Month.ToString() + "\\" + day.ToString();

SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\db\Database1.mdf;Integrated Security=True;User Instance=True");
SqlCommand cmd = new SqlCommand("select tasks,date from job where date=h ",con);

cmd.CommandText = "select tasks,date from job ";
cmd.Parameters.AddWithValue("@a", h);
con.Open();
cmd.ExecuteReader();

SqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
textBox3.Text = reader.GetString(0);
}

con.Close();

azam_mahdi
دوشنبه 31 فروردین 1388, 15:51 عصر
سلام:
لطفا مرا راهنمایی کنید

adibadm
دوشنبه 31 فروردین 1388, 16:52 عصر
دوست عزیز شما در قسمت پاس دادن پارامتر یکم دقت کن متوجه می شی چه اشتباهی داری

کد اشتباه:

SqlCommand cmd = newSqlCommand("select tasks,date from job where date=h ",con);

cmd.CommandText = "select tasks,date from job ";

خط دوم لازم نیست و فقط خط اول را به صورت زیر بنویسید

SqlCommand cmd = newSqlCommand("select tasks,date from job where date=@a ",con);

کد درست:

HijriCalendar HijriCalendar1 = newHijriCalendar();
DateTime date1= DateTime.Now.Date;
int Year = HijriCalendar1.GetYear(date1);
int Month = HijriCalendar1.GetMonth(date1);
int day = HijriCalendar1.GetDayOfMonth(date1);
String h = Year.ToString() + "\\" + Month.ToString() + "\\" + day.ToString();

SqlConnection con = newSqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\db\Database1.mdf;Integrated Security=True;User Instance=True");
con.Open();
SqlCommand cmd = newSqlCommand("select tasks,date from job where date=@a ",con);

cmd.Parameters.AddWithValue("@a", h);

SqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
textBox3.Text = reader.GetString(0);
}

con.Close();

azam_mahdi
سه شنبه 01 اردیبهشت 1388, 09:43 صبح
سلام: من از کدی که شما گفتیداستفاده کردم ولی با این که من درتاریخ امروز کاری دردیتابیس دارم ولی textboxراخالی نشان می دهد ایا ممکن است مشکل به خاطر رشته ای بودن تاریخ باشد ؟چه کارباید بکنم؟

seven7777777
سه شنبه 01 اردیبهشت 1388, 09:58 صبح
دوست عزیز سلام

اگه در دیتابیس تاریخ رو بصورت datetime ذخیره می کنید ، در اینجا هم به پارامتر @a باید تاریخ پاس بدید .
مثلا تاریخ امروز رو :

SqlCommand cmd = newSqlCommand("select tasks,date from job where date=@a ",con);
DateTime date = DateTime.Now.Date;
cmd.Parameters.AddWithValue("@a", date);

azam_mahdi
سه شنبه 01 اردیبهشت 1388, 10:17 صبح
سلام:
DateTime date = DateTime.Now.Date;این کد تاریخ سیستم رامیلادی نشان میدهد درصورتی که دردیتابیس من تاریخ به صورت شمسی است ومن باید تاریخ سیستم رابه شمسی تبدیل کنم( که درکد خودم تبدیل تاریخ شمسی را تصحیح کرده ام که اینجا اشتباه نوشتم ) راستی در دیتابیس من تاریخ را به صورتcharمی گیرد حال چه کنم؟

seven7777777
سه شنبه 01 اردیبهشت 1388, 10:26 صبح
دوست عزیز
در دیتابیس چون تاریخت بصورت رشته است می تونی شمسی ذخیره کنی ولی در حالت کلی تاریخت رو به صورت datetime ذخیره کن .
از فایل ها dll موجود مثل jalalicalender استفاده کن خیلی خوب برات نتیجه می دن .
کلا جاهایی که با تاریخ میخوایم سرو کله بزنیم ذخیره اون بصورت رشته فوق العاده مارو به سمت زیاده کاری پیش می بره .

azam_mahdi
سه شنبه 01 اردیبهشت 1388, 18:09 عصر
jalalicalender چیست؟ راستی من یک دیتا بیس دارم که تاریخ هرکاری دران است دربرنامهc#من از یک masked textbox استفاده کردم حال چطور بهم ارتباط بدهم

seven7777777
چهارشنبه 02 اردیبهشت 1388, 00:03 صبح
ببین شما با استفاده از کتابخانه های موجود برای تاریخ و زمان شمسی ره صد ساله رو یه شبه می ری !!!
حتما تو این سایت هم باید باشه ، من می گردم اگه لینکش بود می ذارم ، اگه نبود فایل هاشو upload می کنم .

seven7777777
چهارشنبه 02 اردیبهشت 1388, 00:17 صبح
بیا این فایل رو دانلود کن ، اگه طرز کار باهاشونو بلد نبودی بگو تا توضیح بدم .

azam_mahdi
چهارشنبه 02 اردیبهشت 1388, 09:01 صبح
سلام: دوست عزیزم ممنون که به سوال من جواب می دهید این فایلی که گذاشته اید برای من باز نمی شود اگه میشه شما به من بگویید چگونه کد تبدیل تاریخ شمسی به میلادی را بنویسم شاید مشکل من حل شد

NewFoxStudent
چهارشنبه 02 اردیبهشت 1388, 09:35 صبح
http://barnamenevis.org/forum/showpost.php?p=483295

http://barnamenevis.org/forum/showpost.php?p=483296

seven7777777
چهارشنبه 02 اردیبهشت 1388, 10:05 صبح
برای استفاده از این dll ها باید به قسمت solution explorer خود رفته و در بخش refrences آن این فایل ها را add کنید .
سپس در برنامه با persiandate یک شی بسازید و بعد ادامه ماجرا .
من یک تکه کد از طرز اتفادش آماده می کنم و میذارم .

در مورد اینکه این dll بهتره یا dllهای دیگه و یا خود persiancalendar هم هیچ نظر و اطلاعی ندارم .

azam_mahdi
چهارشنبه 02 اردیبهشت 1388, 14:15 عصر
سلام:
نیاز به راهنمایی دارم فردا باید برنامه ام رابه استاد تحویل بدهم

seven7777777
چهارشنبه 02 اردیبهشت 1388, 14:16 عصر
خوب اینم از روش کار :
1. به قسمت solution explorer پروژه خود بروید .
2. بر روی refrences راست کلیک کرده و بر روی گزینه add refrence کلیک کنید .
3. در پنجره باز شده و در قسمت browse فایل های dll را که در هارد خود دارید ، انتخاب کنید .
4. در پروژه با یکی از عبارت زیر می تواند مانند DateTime خود برنامه با تاریخ شمسی کار کند :


PersianDate pd = PersianDate.Now;
PersianDate pd = new PersianDate();

5. با استفاده از توابع آن می توانید به منظور خود دست یابید . برای اینکار هنگامی که تاریخ را از کاربر گرفتید که به صورت شمسی است ، با استفاده از عبارت زیر به میلادی تبدیل کن :
pd.ToGregorianDateTime();
و در صورتی که خواستی از بانک بخوانی و به شمسی تبدیل کنی به صورت زیر :


DateTime dt = reader.GetDateTime(0);
PersianDate pd = new PersianDate(dt);


و د آخر از مزایای این dll اینه که روزهای هفته رو هم می گه ، خلاصه من هم با این کار می کنم .
اگه سوال دیگه ای بود بپرسین .

NewFoxStudent
چهارشنبه 02 اردیبهشت 1388, 14:35 عصر
شما لطف کن یه توضیحی راجع به پروژه بده اگه بشه این دفه رو برات انجام بدیم البته اگه پروژه کم حجمی باشه تا خودتونم با روش کار توی C# آشنا بشید