نمایش نتایج 1 تا 13 از 13

نام تاپیک: نمایش شمسی تاریخ که بصورت میلادی ذخیره شده ...

  1. #1
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    Question نمایش شمسی تاریخ که بصورت میلادی ذخیره شده ...

    سلامتو بانک sql تاریخ رو بصورت میلادی در فیلد DateTime ذخیره کردم ...
    حالا چطور توی دیتاگرید ویو فارسی (شمسی) نشونش بدم ؟


  2. #2
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: نمایش شمسی تاریخ که بصورت میلادی ذخیره شده ...

    یک راه این هست که موقع نمایش از رویداد CellFormatting‌ مربوط به DataGridView استفاده کنید.

    private static string GetPersianDate(DateTime date) {
    PersianCalendar persianCalendar = new PersianCalendar();
    int year = persianCalendar.GetYear(date);
    int month = persianCalendar.GetMonth(date);
    int day = persianCalendar.GetDayOfMonth(date);
    return string.Format("{0:0000}/{1:00}/{2:00}", year, month, day);
    }
    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) {
    if (e.ColumnIndex == 1) {
    object value = e.Value;
    if (value is DateTime) {
    e.Value = GetPersianDate((DateTime)e.Value);
    e.FormattingApplied = true;
    }
    }
    }

    البته اگه از نوع ?DateTime بجای DateTime‌ استفاده کردین باید جایگزین کنید. با این روش هر بار موقع نمایش هر سلول عمل تبدیل انجام میشه.
    راه دیگه تبدیل داده ها بعد از دریافت از دیتابیس و تبدیل مقادیر به رشته تاریخ شمسی (فقط یکبار) هست که البته بستگی به نحوه ارتباط شما با دیتابیس داره.

  3. #3
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    نقل قول: نمایش شمسی تاریخ که بصورت میلادی ذخیره شده ...

    سلام
    تو پروژه اول با این کد که لطف کردین ، تاریخ رو شمسی نشون میده :)
    ولی تو یخ پروژه دیگه همون میلادی رو نشون میده ! (دقیقا همین رو استفاده کردم) :(

  4. #4
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: نمایش شمسی تاریخ که بصورت میلادی ذخیره شده ...

    کدی‌که ارسال کردم ستون دوم با اندیس ۱ رو بررسی میکنه. بر اساس اندیس ستون باید کد رو ویرایش کنید.

  5. #5
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    نقل قول: نمایش شمسی تاریخ که بصورت میلادی ذخیره شده ...

    سلام
    میخوام اطلعات رو بر اساس تاریخ نشون بدم توی گریدویو ولی جواب نمیده :

    public void DGV() 
    {
    SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Shopping;Integrated Security=True");
    SqlCommand com = new SqlCommand();
    com.CommandType = CommandType.Text;
    com.CommandText = "Select * From Tsel Where Dat Like @d";
    com.Parameters.AddWithValue("@d", label1.Text);
    com.Connection = con;
    SqlDataAdapter dp = new SqlDataAdapter(com);
    DataSet ds = new DataSet();
    dp.Fill(ds, "T");
    dataGridView1.DataSource = ds.Tables["T"];
    }




    البته فکر نکنم این بهترین راه باشه !
    راهی هست که توی sql این کار رو انجام بدیم ؟

  6. #6
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    نقل قول: نمایش شمسی تاریخ که بصورت میلادی ذخیره شده ...

    البته از between واسه انتخاب بین دو تاریخ استفاده کردم و جواب داد ...
    این واسه نمایش مربوط به تاریخ روزه (کاربر نباید چیزی وارد کنه)

  7. #7
    کاربر دائمی آواتار abdullah20
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    اصفهان
    پست
    1,211

    نقل قول: نمایش شمسی تاریخ که بصورت میلادی ذخیره شده ...

    خوب دوست عزیز وقتی شما میخواید تاریخ ذخیره شده را به صورت شمسی نشون بدید چرا از همون اول به صورت شمسی ذخیره نمیکنید؟

  8. #8
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    نقل قول: نمایش شمسی تاریخ که بصورت میلادی ذخیره شده ...

    با نمایش مشکلی ندارم ...
    می خوام طبق تاریخ (میلادی یا شمسی) اطلاعات رو فیلتر کنم !
    بعد توی لیست باکس نمایش بدم ... در واقع واسه سر رسید تاریخ و هشدار میخوام (هر کار میکنم جواب نمیده !)

  9. #9
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: نمایش شمسی تاریخ که بصورت میلادی ذخیره شده ...

    اگه فیلد شما از نوع datetime هست چرا از like در query استفاده کردین؟ عملگر like مربوط به رشته هست.
    تاریخ وارد شده توسط کاربر رو ابتدا باید به نوع DateTime تبدیل کنید و بعد به عنوان پارامتر به command بدین. تبدیل قبلا در تاپیک هاییی توضیح داده شده.

  10. #10
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    نقل قول: نمایش شمسی تاریخ که بصورت میلادی ذخیره شده ...

    ممنون ...
    با این ردیف شد (الان دیتاگریدویو رو نسبت به تاریخ جاری سیستم فیلتر میکنه)

    com.CommandText = "SELECT * FROM TDat Where Dat = @d";
    com.Parameters.AddWithValue("@d", DateTime.Today);

  11. #11
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    تهران
    پست
    227

    Question نقل قول: نمایش شمسی تاریخ که بصورت میلادی ذخیره شده ...

    نقل قول نوشته شده توسط plus مشاهده تاپیک
    یک راه این هست که موقع نمایش از رویداد CellFormatting‌ مربوط به DataGridView استفاده کنید.

    private static string GetPersianDate(DateTime date) {
    PersianCalendar persianCalendar = new PersianCalendar();
    int year = persianCalendar.GetYear(date);
    int month = persianCalendar.GetMonth(date);
    int day = persianCalendar.GetDayOfMonth(date);
    return string.Format("{0:0000}/{1:00}/{2:00}", year, month, day);
    }
    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) {
    if (e.ColumnIndex == 1) {
    object value = e.Value;
    if (value is DateTime) {
    e.Value = GetPersianDate((DateTime)e.Value);
    e.FormattingApplied = true;
    }
    }
    }

    البته اگه از نوع ?DateTime بجای DateTime‌ استفاده کردین باید جایگزین کنید. با این روش هر بار موقع نمایش هر سلول عمل تبدیل انجام میشه.
    راه دیگه تبدیل داده ها بعد از دریافت از دیتابیس و تبدیل مقادیر به رشته تاریخ شمسی (فقط یکبار) هست که البته بستگی به نحوه ارتباط شما با دیتابیس داره.

    باسلام
    ممنون از راهنماییتون درمورد مشکل من، راه حل شما جواب داد.
    ولی در قسمت فرمت فیلد InsertTime که فقط زمان درونش ذخیره میشه از روش شما استفاده کردم، نتیجه نمیگیرم، کد به این صورت شد:

    private static string GetTime(DateTime time)
    {
    PersianCalendar Time = new PersianCalendar();
    int Houre = Time.GetHour(time);
    int Minute = Time.GetMinute(time);
    int Second = Time.GetSecond(time);
    return string.Format("{0:00}:{1:00}:{2:00}",Houre,Minute, Second);
    }

    private void dgvCommodShortage_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
    if (e.ColumnIndex == 3)
    {
    object value2 = e.Value;
    if (value2 is DateTime)
    {
    e.Value = GetTime((DateTime)e.Value);
    e.FormattingApplied = true;
    }
    }
    }


    ممنون میشم راهنماییم کنید که کد چه تغییری باید بکنه؟
    باتشکر از تمامی دوستان و بزرگواران

  12. #12
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    تهران
    پست
    227

    Question نقل قول: نمایش شمسی تاریخ که بصورت میلادی ذخیره شده ...

    نقل قول نوشته شده توسط plus مشاهده تاپیک
    یک راه این هست که موقع نمایش از رویداد CellFormatting‌ مربوط به DataGridView استفاده کنید.

    private static string GetPersianDate(DateTime date) {
    PersianCalendar persianCalendar = new PersianCalendar();
    int year = persianCalendar.GetYear(date);
    int month = persianCalendar.GetMonth(date);
    int day = persianCalendar.GetDayOfMonth(date);
    return string.Format("{0:0000}/{1:00}/{2:00}", year, month, day);
    }
    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) {
    if (e.ColumnIndex == 1) {
    object value = e.Value;
    if (value is DateTime) {
    e.Value = GetPersianDate((DateTime)e.Value);
    e.FormattingApplied = true;
    }
    }
    }

    البته اگه از نوع ?DateTime بجای DateTime‌ استفاده کردین باید جایگزین کنید. با این روش هر بار موقع نمایش هر سلول عمل تبدیل انجام میشه.
    راه دیگه تبدیل داده ها بعد از دریافت از دیتابیس و تبدیل مقادیر به رشته تاریخ شمسی (فقط یکبار) هست که البته بستگی به نحوه ارتباط شما با دیتابیس داره.
    درحالتی که نوع تاریخم در دیتابیس از نوع Date هست این راه حل جواب داد، ولی وقتی نوع تاریخم میشه DateTime که هم تاریخ ذخیره شده و هم زمان، از این شیوه نتیجه نمیگیرم.
    ممنون میشم راهنماییم کنید.
    باتشکر از تمامی دوستان و بزرگواران

  13. #13

    نقل قول: نمایش شمسی تاریخ که بصورت میلادی ذخیره شده ...

    اگه در روش ADO باشه به صورتconvert(date,Tarek) as Tarekh به صورت مثال در اسکیول سرور این بنویسید زمان میزارید کنار و تاریخ میکشید بیرون و عمل تبدیل به شمسی داخلش میتوانید انجام بدید حتی داخل اسکیول سرور تاریخ میلادی بکشید با Function خیلی ساده روی همون اسکیول سرور تاریخ از میلادی به شمسی تبدیل کنید و در داخل برنامه تاریخ شمسی مشاهده کنید

تاپیک های مشابه

  1. پاسخ: 70
    آخرین پست: چهارشنبه 01 خرداد 1398, 23:36 عصر
  2. سوال: نمایش عکس که بصورت باینری ذخیره شده است در stimolsoft
    نوشته شده توسط Iran58 در بخش ابزارهای گزارش سازی
    پاسخ: 4
    آخرین پست: سه شنبه 17 تیر 1393, 16:53 عصر
  3. پاسخ: 1
    آخرین پست: پنج شنبه 05 دی 1392, 19:49 عصر
  4. کوئری سال یا ماه وقتی تاریخ میلادی ذخیره شده!
    نوشته شده توسط salehsam در بخش C#‎‎
    پاسخ: 5
    آخرین پست: چهارشنبه 04 دی 1392, 22:28 عصر
  5. نمایش اطلاعات یک جدول که بصورت XML ذخیره شده است
    نوشته شده توسط mahdy.asia در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 7
    آخرین پست: پنج شنبه 02 شهریور 1391, 06:31 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •