سلام
من کدی را می خواهم زمانی که یک فرم لودشد پیغام بده امروز زمان انجام کاری است مثلا زمان پرداخت چک وغیره من از دیتا بیس استفاده کرده ام ولی حالا نمی دانم چه کدی بنویسم
سلام
من کدی را می خواهم زمانی که یک فرم لودشد پیغام بده امروز زمان انجام کاری است مثلا زمان پرداخت چک وغیره من از دیتا بیس استفاده کرده ام ولی حالا نمی دانم چه کدی بنویسم
شما کارهایی رو که قبلا معرفی شده یه جا ذخیره کردید هر کار یه تاریخ داره
حالا وقتی برنامه لود شد تاریخ فعلی سیستم رو بگیر و با تاریخ تمام کارهای موجود مقایسه کن.
برای هر رکورد اگه تاریخ برابر با تاریخ سیستم بود او رکورد رو انتخاب کن
و بعد رکورد های انتخاب شده رو نمایش بده
اگه مشکلت مقایسه تاریخ ها یا گرفتن تاریخ از سیستمه یه سر به تاپیک 1001 نکته در C# بزن
اونجا کدهای زیادی برای این کار هست
سلام دوست عزیزم:
اگرامکان دارد مقداری دیگر مرا را راهنمایی کنید به نکته ها مراجعه کردم ولی متوجه نشدم یعنی اصلا نمی دانم ازچه چیزی باید استفاده کنم یعنی از ifیاswitchیاغیره وچطور کد بنویسم
فرض کنید میخواهیم کارهایی که زمان انجامشون رسیده رو نمایش بددیم
Select WorkItem From WorkList Where WorkTime = GetDate()
GetDate() توی Sql تاریخ جاریه سیستم رو برمیگردونه
با این دستورات کارهایی که تاریخشون با تاریخ امروز برابر هست رو از بانک اطلاعات انتخاب میکنیم
و رکوردهای انتخاب شده رو توی یه کنترل مثل لیست باکس یا گرید نمایش میدیم
به همین سادگی
ببخشید من کدنویسی سی شارپ این موضوع را نمی دانم اگر امکان دارد مرا دوباره راهنمایی کنید
دوست عزیز
اگه تازه برنامه نویسی رو شروع کردین بهتره یه نگاهی به آموزش های فارسی که در همین سایت بارها معرفی شده بندازین .
حتما کمک موثری برای شما خواهد بود .
اگر هم نمی دانید که چطور نتایج یافته شده رو با کدهای C# در برنامه نشون بدین ، اون یه بحث دیگس ، بگین تا بچه ها کمک کنند .
موفق باشید
سلام:
من هنوز دچار مشکل هستم اصلا نمی دانم چگونه از اطلاعاتی که در دیتا بیس هست می تونم برای نشان دادن پیغام استفاده کنم واینکه باید از حلقه یا چیز دیگر استفاده کنم کمکم کنید
سلام:
ببخشید اگه میشه مرا راهنمایی کنید
نمی دونم آموزش ها رو مطالعه کردید یا نه ؟
برای دسترسی به دیتابیست راه های مختلفی داری ، مثلا استفاده از dataset یا datareadr .
شما دو راه برای بدست آوردن رکوردهای مورد نظرت داری :
1. تو دستور select خودت رکوردهای تاریخ مرد نظرت رو جدا کنی .
2. تمام رکوردها رو بازیابی کنی و تو C# اونها رو جدا کنی .
البته نوع اول خیلی بهتره که کدش تو پست 4 هست .
فرض می کنیم از datarader استفاده می کنی . با کد زیر می تونی به ردیف هاش دسترسی داشته باشی :
while (reader1.read())
{
textbox1.text = reader1.getstring(0);
}
حالا اگه با reader هم آشنا نیستی بگو تا بچه ها کمک کنند .
اما در کل شما با یه دستور select ردیف های مورد نیازت رو از دیتابیست دراوردی . حلقه while مادامی که ردیف باشه می چرخه و متنی که تو دستورselect خودت واکشی کردی ( که همون کاری که باید در تاریخ جاری انجام بشه ) تو یه تکست باکس نمایش میده { البته کلا بهتره کارها رو تو یه datagridview نشون بدی } .
سلام:
ازشما دوست عزیز متشکرم باراهنمایی شما تونستم کارهایی انجام بدم ولی یک مشکل دیگه هم دارم زمانی که من از دستور selectدرsqlcommandاستفاده می کنم چگونه دستور where استفاده کنم؟
یعنی چگونه هرجایی که تاریخ سیستم با تاریخ هر وظیفه از دیتابیس برابر است رافیلتر کند؟
شما هم می تونید از دستور 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);
دیگه از هر راهی که می خوای برو .
راستی اگه تاریخت رو بصورت رشته ذخیره کردی اینا جواب نمیده ها !!!
دوست عزیز این مسائلی که توی این تاپیک مطرح شده مفاهیم ابتدایی برنامه نویسیه بانک اطلاعاتیه
که به نظر میرسه اطلاعات شما در این زمینه بسیار محدود باشه
پیشنهاد میکنم قبل انجام هر پروژه ای حتی آزمایشی یه مطالعه کامل روی این مطالب انجام بدید و اگه در این زمینه نیاز به منبعی دارید بفرمایید تا معرفی کنم
دوستان عزیزم:
من در دیتابیس اطلاعات کمی دارم ومطا لبی را خوانده ام ودراین پروزه با راهنمایی شما دوستان کارهایی راانجام داده ام ودربرنامه یک warningدارم که نمی دانم برای چیست؟
ExecuteReader: Connection property has not been initialized.
من تاریخ سیستم راگرفته وبه شمسی تبدیل کردم وبعد کارهایی دردوپست قبل امده بودانجام دادم درمورد این warningمرا راهنمایی کنید
متشکرم
شی SqlCommand که ساخته اید یک خاصیت داره به نام Connection که از خانواده SqlConnection و باید ست بشه و حتما باز باشه شما باید قبل از متدExecuteReader خاصیت Connection شی SqlCommand رو مقدار دهی کنید
به این صورت
SqlConnection sqlConnection = new SqlConnection(ConnectionString);
sqlCommand.Connection = sqlConnection;
sqlConnection.Open();
sqlCommand.ExecuteReader();
سلام
دوست عزیزم من همچنان این warning رادارم من قبلا sqlconnectionراتعریف کرده بودم ولی نمی دانم مشکل از کجا ست؟
این خطا فقط مربوط به کانکشن اسکیوال و هیچ دلیل دیگه ای نداره
تکه کدتون رو اینجا بزارید تا اصلاح بشه
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");
SqlCommand cmd = newSqlCommand("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();
سلام:
لطفا مرا راهنمایی کنید
دوست عزیز شما در قسمت پاس دادن پارامتر یکم دقت کن متوجه می شی چه اشتباهی داری
کد اشتباه:
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();
آخرین ویرایش به وسیله adibadm : دوشنبه 31 فروردین 1388 در 17:04 عصر
سلام: من از کدی که شما گفتیداستفاده کردم ولی با این که من درتاریخ امروز کاری دردیتابیس دارم ولی textboxراخالی نشان می دهد ایا ممکن است مشکل به خاطر رشته ای بودن تاریخ باشد ؟چه کارباید بکنم؟
دوست عزیز سلام
اگه در دیتابیس تاریخ رو بصورت datetime ذخیره می کنید ، در اینجا هم به پارامتر @a باید تاریخ پاس بدید .
مثلا تاریخ امروز رو :
SqlCommand cmd = newSqlCommand("select tasks,date from job where date=@a ",con);
DateTime date = DateTime.Now.Date;
cmd.Parameters.AddWithValue("@a", date);
سلام:
DateTime date = DateTime.Now.Date;این کد تاریخ سیستم رامیلادی نشان میدهد درصورتی که دردیتابیس من تاریخ به صورت شمسی است ومن باید تاریخ سیستم رابه شمسی تبدیل کنم( که درکد خودم تبدیل تاریخ شمسی را تصحیح کرده ام که اینجا اشتباه نوشتم ) راستی در دیتابیس من تاریخ را به صورتcharمی گیرد حال چه کنم؟
دوست عزیز
در دیتابیس چون تاریخت بصورت رشته است می تونی شمسی ذخیره کنی ولی در حالت کلی تاریخت رو به صورت datetime ذخیره کن .
از فایل ها dll موجود مثل jalalicalender استفاده کن خیلی خوب برات نتیجه می دن .
کلا جاهایی که با تاریخ میخوایم سرو کله بزنیم ذخیره اون بصورت رشته فوق العاده مارو به سمت زیاده کاری پیش می بره .
jalalicalender چیست؟ راستی من یک دیتا بیس دارم که تاریخ هرکاری دران است دربرنامهC#من از یک masked textbox استفاده کردم حال چطور بهم ارتباط بدهم
ببین شما با استفاده از کتابخانه های موجود برای تاریخ و زمان شمسی ره صد ساله رو یه شبه می ری !!!
حتما تو این سایت هم باید باشه ، من می گردم اگه لینکش بود می ذارم ، اگه نبود فایل هاشو upload می کنم .
بیا این فایل رو دانلود کن ، اگه طرز کار باهاشونو بلد نبودی بگو تا توضیح بدم .
سلام: دوست عزیزم ممنون که به سوال من جواب می دهید این فایلی که گذاشته اید برای من باز نمی شود اگه میشه شما به من بگویید چگونه کد تبدیل تاریخ شمسی به میلادی را بنویسم شاید مشکل من حل شد
برای استفاده از این dll ها باید به قسمت solution explorer خود رفته و در بخش refrences آن این فایل ها را add کنید .
سپس در برنامه با persiandate یک شی بسازید و بعد ادامه ماجرا .
من یک تکه کد از طرز اتفادش آماده می کنم و میذارم .
در مورد اینکه این dll بهتره یا dllهای دیگه و یا خود persiancalendar هم هیچ نظر و اطلاعی ندارم .
سلام:
نیاز به راهنمایی دارم فردا باید برنامه ام رابه استاد تحویل بدهم
خوب اینم از روش کار :
1. به قسمت solution explorer پروژه خود بروید .
2. بر روی refrences راست کلیک کرده و بر روی گزینه add refrence کلیک کنید .
3. در پنجره باز شده و در قسمت browse فایل های dll را که در هارد خود دارید ، انتخاب کنید .
4. در پروژه با یکی از عبارت زیر می تواند مانند DateTime خود برنامه با تاریخ شمسی کار کند :
PersianDate pd = PersianDate.Now;
PersianDate pd = newPersianDate();
5. با استفاده از توابع آن می توانید به منظور خود دست یابید . برای اینکار هنگامی که تاریخ را از کاربر گرفتید که به صورت شمسی است ، با استفاده از عبارت زیر به میلادی تبدیل کن :
pd.ToGregorianDateTime();
و در صورتی که خواستی از بانک بخوانی و به شمسی تبدیل کنی به صورت زیر :
DateTime dt = reader.GetDateTime(0);
PersianDate pd = newPersianDate(dt);
و د آخر از مزایای این dll اینه که روزهای هفته رو هم می گه ، خلاصه من هم با این کار می کنم .
اگه سوال دیگه ای بود بپرسین .
شما لطف کن یه توضیحی راجع به پروژه بده اگه بشه این دفه رو برات انجام بدیم البته اگه پروژه کم حجمی باشه تا خودتونم با روش کار توی C# آشنا بشید