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

نام تاپیک: خطا در persia.dll بخاطر سال کبیسه

  1. #1
    کاربر دائمی آواتار nassim0
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    199

    خطا در persia.dll بخاطر سال کبیسه

    با سلام و خسته نباشید . دوستان من از کامپوننت
    persia.dll برای تبدیل تاریخ هام استفاده کردم ولی از عید به بعد از تبدیل تاریخ های سی و سی و یک هر ماه خطا میده . آیا ورژن جدیدی از persia.dll وجود داره که این مشکل رو حل کرده باشه.

  2. #2

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    تو خود C#‎ امکانات تبدیل تاریخ هست:

    PersianCalendar pc = new PersianCalendar();
    DateTime thisDate = DateTime.Now;
    string pdate=pc.GetYear(thisDate)+"/"+pc.GetMonth(thisDate)+"/"+pc.GetDayOfMonth(thisDate);
    MessageBox.Show(pdate);

  3. #3
    کاربر دائمی آواتار nassim0
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    199

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    ممنونم از تابع بالا استفاده کردم اما موقع تبدیل وقتی خروجی رو توی ماسک تکس باکس قرار میدم ، ماه یا روز رو با دو رقم نشون نمیده
    errordate.jpg

  4. #4
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    نقل قول نوشته شده توسط nassim0 مشاهده تاپیک
    ممنونم از تابع بالا استفاده کردم اما موقع تبدیل وقتی خروجی رو توی ماسک تکس باکس قرار میدم ، ماه یا روز رو با دو رقم نشون نمیده
    errordate.jpg
    بدلیل این هست که ماه ها و روزهای 1 تا 9 که تک رفمی هستن رو بدون قالب نشون میده
    کد رو به شکل زیر تغییر بدید:

    PersianCalendar pc = new PersianCalendar();
    DateTime thisDate = DateTime.Now;
    string pdate =pc.GetYear(thisDate).ToString("0000") + "/" + pc.GetMonth(thisDate).ToString("00") + "/" + pc.GetDayOfMonth(thisDate).ToString("00");
    MessageBox.Show(pdate);

    موفق باشید
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  5. #5
    کاربر دائمی آواتار nassim0
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    199

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

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

    code.jpg
    خظا :

    newerror.jpg

    ممنون میشم راهنماییم کنید

  6. #6
    کاربر دائمی آواتار nassim0
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    199

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    نقل قول نوشته شده توسط danialafshari مشاهده تاپیک
    با سلام
    می تونید از dll من استفاده کنید
    کافیه به Toolbox اضافش کنید
    اگر هم میخواهید مشکل کد خودتون رو حل کنید بگید تا خطاش رو رفع کنم
    موفق باشید
    ممنون میشم برای یادگیریم راهنماییم کنید مشکل کدم کجاست

  7. #7

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    سلام
    شما تاریخ شمسی رو در قالب DateTime به متودتون پاس میدید؟ این اشتباهه (اگر اینکه در ویندوز 10 تنظیم تقویم رو روی تقویم شمسی ست کرده باشید که اون هم فعلا عمومیت نداره)

    به نظر بنده یک کلاس استاتیک ایجاد کنید در پروژتون و برای تبدیل دوتا Extention Method بنویسید ، استفاده کردن ازش هم خیلی راحت تر میشه
    به این کلاس دقت کنید


    public static class Extentions
    {
    public static int? ToInt(this string inputString)
    {
    int? output;


    try
    {
    output = int.Parse(inputString);
    }
    catch (Exception)
    {
    output = null;
    }


    return output;
    }


    /// <summary>
    /// Gets a Gregorian DateTime and Converts to Persian Date in YYYY/MM/DD format
    /// </summary>
    /// <param name="inputDateTime">The input date time.</param>
    /// <returns>System.String.</returns>
    public static string ToPersianDate(this DateTime inputDateTime)
    {
    string result;


    try
    {
    var pc = new PersianCalendar();
    result = pc.GetYear(inputDateTime) + "/" + pc.GetMonth(inputDateTime).ToString("D2") + "/" + pc.GetDayOfMonth(inputDateTime).ToString("D2");
    }
    catch (Exception)
    {
    result = null;
    }


    return result;
    }


    /// <summary>
    /// Gets a Persian Date in YYYY/MM/DD format and converts to Gregorian DateTime
    /// </summary>
    /// <param name="inputDate">The shamsi date.</param>
    /// <returns>DateTime.</returns>
    public static DateTime ToGregorianDate(this string inputDate)
    {
    DateTime result;


    try
    {
    var persianCalendar = new PersianCalendar();


    var year = inputDate.Substring(0, 4).ToInt();
    var month = inputDate.Substring(5, 2).ToInt();
    var day = inputDate.Substring(8, 2).ToInt();


    result = persianCalendar.ToDateTime(year.Value, month.Value, day.Value, 0, 0, 0, 0);
    }
    catch (Exception)
    {
    throw new FormatException();
    }


    return result;
    }
    }



    الان در هرجای پروژتون بخواهید یک تاریخ میلادی رو به شمسی تبدیل کنید به اینصورت و به سادگی قابل انجام هست
    var persianDate = DateTime.Now.ToPersianDate();


    یا برای تبدیل تاریخ شمسی به میلادی کافیه اینطوری عمل کنید (دقت کنید فرمت تاریخ شمسی YYYY/MM/DD باید باشه و String البته)
    var gregorianDate = "1396/07/15".ToGregorianDate();





    موفق باشید.
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  8. #8
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    نقل قول نوشته شده توسط nassim0 مشاهده تاپیک
    سلام . من از کد زیر برای تبدیل به میلادی استفاده کردم ولی بازم خطا داد

    code.jpg
    خظا :

    newerror.jpg

    ممنون میشم راهنماییم کنید
    به این شکل میتونید استفاده کنید:

    public string DateToday(DateTime _date)
    {
    PersianCalendar pc = new PersianCalendar();
    StringBuilder sb = new StringBuilder();
    sb.Append(pc.GetYear(_date).ToString("0000"));
    sb.Append("/");
    sb.Append(pc.GetMonth(_date).ToString("00"));
    sb.Append("/");
    sb.Append(pc.GetDayOfMonth(_date).ToString("00"));
    return sb.ToString();
    }


    استفاده :

    string strtoday = DateToday(Convert.ToDateTime("1993/09/26"));
    MessageBox.Show(strtoday);

    موفق باشید
    آخرین ویرایش به وسیله danialafshari : شنبه 15 مهر 1396 در 12:06 عصر
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  9. #9
    کاربر دائمی آواتار nassim0
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    199

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    نقل قول نوشته شده توسط danialafshari مشاهده تاپیک
    به این شکل میتونید استفاده کنید:

    public string DateToday(DateTime _date)
    {
    PersianCalendar pc = new PersianCalendar();
    StringBuilder sb = new StringBuilder();
    sb.Append(pc.GetYear(_date).ToString("0000"));
    sb.Append("/");
    sb.Append(pc.GetMonth(_date).ToString("00"));
    sb.Append("/");
    sb.Append(pc.GetDayOfMonth(_date).ToString("00"));
    return sb.ToString();
    }


    استفاده :

    string strtoday = DateToday(Convert.ToDateTime("1993/09/26"));
    MessageBox.Show(strtoday);

    موفق باشید

    ببخشید این تابع برای تبدیل به شمی هست من به میلادی نیاز دارم . ممنون میشم راهنماییم کنید
    آخرین ویرایش به وسیله nassim0 : شنبه 15 مهر 1396 در 12:48 عصر دلیل: error load page

  10. #10
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    میلادی:

    private string Miladi(int year,Int16 month,Int16 day)
    {
    PersianCalendar pc = new PersianCalendar();
    var Miladi = pc.ToDateTime(year, month, day, 0, 0, 0, 0);
    var result = String.Format("{0}/{1}/{2}", Miladi.Year.ToString("0000"), Miladi.Month.ToString("00"), Miladi.Day.ToString("00"));
    return result;
    }

    استفاده :

    MessageBox.Show(Miladi(1396,7,15));

    موفق باشید
    آخرین ویرایش به وسیله danialafshari : شنبه 15 مهر 1396 در 13:50 عصر
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

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

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    با سلام و خسته نباشید . مشکل سال کبیسه برای ذخیره و بازیابی از بانک به لطف راهنمایی دوستان برطرف شد . مشکل جدیدی که الان برام پیش اومده اینه که وقتی میخوام تاریخ گرید ویو رو تبدیل به تاریخ شمسی کنم خطا میده ولی نه روی هر تاریخی (مثل خطای سال کبیسه 30 یا 31 ماه ها) . ممنون میشم راهنماییم کنید .
    errordate.jpg

    کد تابع تبدیل

       public static string DateToday(DateTime _date)        {
    PersianCalendar pc = new PersianCalendar();
    StringBuilder sb = new StringBuilder();
    sb.Append(pc.GetYear(_date).ToString("0000"));
    sb.Append("/");
    sb.Append(pc.GetMonth(_date).ToString("00"));
    sb.Append("/");
    sb.Append(pc.GetDayOfMonth(_date).ToString("00"));
    return sb.ToString();


    }

  12. #12
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    با سلام
    لطفاً بجای استفاده از عکس کد رو قرار بدید که بشه تست و ویرایش کرد و در عکس، ارور رو قرار بدید.
    خطا میگه datetime رو نمیتونیم تبدیل به string کنم
    شما در طرف چپ مساوی اومدید datetime گذاشتید و طرف راست مساوی string خب بایدم ارور بده
    قبل از calender.DateToday یک تبدیل بهگذارید به شکل زیر

    Convert.toString(Calender.DateToday(Convert.ToDate Time(grdkarshenasi.rows[i].cell[8].value)));

    چه لزومی به تبدیل هست؟ مگر به میلادی و DateTime درون بانک قرار دادید؟
    تبدیل راه اصولی نیست تصور کنید حجم اطلاعات بره بالا و تبدیل هم حلقه نیاز داره و موجب هنگ و کند شدن برنامه میشه
    پیشنهاد می کنم از nvarchar 10 استفاده کنید و به صورت شمسی ذخیره کنید
    موفق باشید
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  13. #13
    کاربر دائمی آواتار nassim0
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    199

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    نقل قول نوشته شده توسط danialafshari مشاهده تاپیک
    با سلام
    لطفاً بجای استفاده از عکس کد رو قرار بدید که بشه تست و ویرایش کرد و در عکس، ارور رو قرار بدید.
    خطا میگه datetime رو نمیتونیم تبدیل به string کنم
    شما در طرف چپ مساوی اومدید datetime گذاشتید و طرف راست مساوی string خب بایدم ارور بده
    قبل از calender.DateToday یک تبدیل بهگذارید به شکل زیر

    Convert.toString(Calender.DateToday(Convert.ToDate Time(grdkarshenasi.rows[i].cell[8].value)));

    چه لزومی به تبدیل هست؟ مگر به میلادی و DateTime درون بانک قرار دادید؟
    تبدیل راه اصولی نیست تصور کنید حجم اطلاعات بره بالا و تبدیل هم حلقه نیاز داره و موجب هنگ و کند شدن برنامه میشه
    پیشنهاد می کنم از nvarchar 10 استفاده کنید و به صورت شمسی ذخیره کنید
    موفق باشید
    با سلام متاسفانه تعداد تاریخ های زیادی توی برنامه وجود داره که همگی رو با datetime توی بانک ذخیره کردم تا قبل از عید هیچ مشکلی نداشتم برنامم تقریبا تموم شدس اما بعد از مشکلات تاریخ شروع شد .
    grdkarshenasi.Rows[i].Cells[8].Value = Convert.ToString(calender.DateToday(Convert.ToDate  Time("2016/05/10")));
    grdkarshenasi.Rows[i].Cells[12].Value =Convert.ToString(calender.DateToday(Convert.ToDat eTime("2016/05/20")));

    توی خط اول کد های بالا که تاریخ شمسی 1395/02/21 مقدار رو به گرید ویو لحاظ میکنه اما دومین خط که مقدار شمسیش معادل 1395/02/31 و دقیقا همون تابع تبدیل رو استفاده کردم باز خطا میده . انواع تبدیل tostring رو هم امتحان کردم اما نتونستم خطا رو رفع کنم .
    تبدیل تاریخ :

    public static string DateToday(DateTime _date)        {
    PersianCalendar pc = new PersianCalendar();
    StringBuilder sb = new StringBuilder();
    sb.Append(pc.GetYear(_date).ToString("0000"));
    sb.Append("/");
    sb.Append(pc.GetMonth(_date).ToString("00"));
    sb.Append("/");
    sb.Append(pc.GetDayOfMonth(_date).ToString("00"));
    return sb.ToString();


    }


    خطا : String was not recognized as a valid DateTime.
    آخرین ویرایش به وسیله nassim0 : سه شنبه 18 مهر 1396 در 08:33 صبح دلیل: غلط املایی

  14. #14
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    منم با تاریخ 2/31 مشکل داشتم . نهایتا مجبور شدم داده ها رو به صورت شمسی و رشته ذخیره کنم. و در صورت نیاز تبدیلات رو یا توی خود اس کیو ال انجام بدم یا اینکه توی برنامه انجام بدم.

  15. #15

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    سلام
    به پستی که بالاتر گذاشتم و کدی که نوشتم دقت کردین؟ هیچ مشکلی نداره ، شما اگر ورودی May 21 2017 بهش بدید تبدیلش میکنه به 1396/02/31 ، نمیدونم مشکل چیه دیگه ، برای سال قبل هم (1395/02/31) معادلش میشه 20 May و این درسته

    این به درستی کار میکنه ، با همون کدی که بالاتر دادم
    Convert.ToDateTime("2016/05/20").ToPersianDate()




    البته این رو هم بگم ، با کد خودتون هم تست کردم مشکلی نداشت و نتیجه درست برمیگردونه ، ضمن اینکه ToString نیاز نیست ، چون نوع خروجی متد شما String هست
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  16. #16
    کاربر دائمی آواتار nassim0
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    199

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    نقل قول نوشته شده توسط محمد آشتیانی مشاهده تاپیک
    سلام
    به پستی که بالاتر گذاشتم و کدی که نوشتم دقت کردین؟ هیچ مشکلی نداره ، شما اگر ورودی May 21 2017 بهش بدید تبدیلش میکنه به 1396/02/31 ، نمیدونم مشکل چیه دیگه ، برای سال قبل هم (1395/02/31) معادلش میشه 20 May و این درسته

    این به درستی کار میکنه ، با همون کدی که بالاتر دادم
    Convert.ToDateTime("2016/05/20").ToPersianDate()




    البته این رو هم بگم ، با کد خودتون هم تست کردم مشکلی نداشت و نتیجه درست برمیگردونه ، ضمن اینکه ToString نیاز نیست ، چون نوع خروجی متد شما String هست

    با سلام و خسته نباشید . از لطفتون ممنونم . جناب آقای آشتیانی برای ذخیره و لود از بانک مشکلی ندارم مواردی که شما و آقای افشاری زحمتشو کشیدید باعث شد مشکل من حل بشه . مشکل الانم اینه که وقتی گرید ویو رو بایند می کنم چون تاریخهای بانکم میلادیه نیاز هست که تاریخ ها توی گرید ویو شمسی نمایش داده بشه و از کد زیر استفاده می کنم.
     grdkarshenasi.Rows[i].Cells[8].Value  = Convert.ToDateTime(grdkarshenasi.Rows[i].Cells[8].Value.ToString()).ToPersianDate();


    در حال حاضر مشکلم تبدیل تاریخ به شمسی توی گرید ویو (البته از radgreid view چون از تلریک استفاده می کنم) هستش . با روزای پایین تر یا بالاتر مشکلی نداره خطا نمیده اما تا 30 یا بیشتر 31 ماه رو استفاده می کنم خطامیده . برام مقدور نیست تاریخ ها رو بخوام از اول استرینگ کنم خیلی وقت گیره و البته تعداد تاریخ های استفاده شده توی کل پروژه بالای صد تا فیلد هستش .
    توی هر دوروش همون خطا رو میده
     grdkarshenasi.Rows[i].Cells[8].Value = Convert.ToDateTime("2016/05/20").ToPersianDate();
    grdkarshenasi.Rows[i].Cells[8].Value = Convert.ToDateTime(grdkarshenasi.Rows[i].Cells[8].Value.ToString()).ToPersianDate();

    ممنون میشم راهنماییم کنید .
    آخرین ویرایش به وسیله nassim0 : چهارشنبه 19 مهر 1396 در 08:38 صبح دلیل: اضافه نمودن خروجی

  17. #17

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    سلام
    متوجه مشکل نمیشم ، اگر براتون مقدوره ، پروژتون رو جایی آپلود کنید تا نگاهی بندازم بهش و یا همین مشکل رو روی یک پروژه تستی پیش بیارید و اون رو بذارید تا رفع اشکال بشه (به همراه دیتابیس و هر موردی که لازم هست)
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  18. #18
    کاربر دائمی آواتار nassim0
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    199

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    نقل قول نوشته شده توسط محمد آشتیانی مشاهده تاپیک
    سلام
    متوجه مشکل نمیشم ، اگر براتون مقدوره ، پروژتون رو جایی آپلود کنید تا نگاهی بندازم بهش و یا همین مشکل رو روی یک پروژه تستی پیش بیارید و اون رو بذارید تا رفع اشکال بشه (به همراه دیتابیس و هر موردی که لازم هست)
    با سلام و خسته نباشید . جناب آقای آشتیانی توی پروژه که خدمتتون ارسال کردم یک گرید ویو هست که به بانکم از طریق linq بایند میشه بعد توی یک حلقه شروع به تبدیل تاریخ های میلادی به شمسی می کنه . لینک دانلود پروژه :

    http://shatelland.com/upload/files/a...0-021e6823b405
    آخرین ویرایش به وسیله nassim0 : چهارشنبه 19 مهر 1396 در 15:43 عصر دلیل: change link

  19. #19

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    سلام
    قضیه به این ترتیب هست که ، وقتی شما دارید مقدار یک ردیف از یک ستون بایند شده رو به تاریخ شمسی تغییر می دید و نتیجه رو درون همون فیلد میریزید ، تاریخ تبدیل شده از دید برنامه فرمتش میلادی هست ، برای همینه که به شما خطا میده

    حالا راه حل هایی هم وجود داره
    1- اینکه کل ستون های مورد نیاز رو با کد نویسی بسازید و مقادیر رو با یک حلقه foreach درون دیتاگرید بریزید (یعنی دیتاگریدتون به دیتاسورس بایند نباشه)
    2- روش فعلی رو انجام بدید ، اما بعد از بایند شدن ، ستون تاریخ میلادی رو مخفی کنید و یک ستون بصورت دستی بسازید و مقادیر تبدیل شده رو داخلش بریزید.
    3- یک Business Object بسازید و نتیجه کوئریتون رو در یک لیست از اون آبجکت بریزید و اون لیست رو به دیتا گرید بایند کنید.

    منظورم از گزینه سوم همچین چیزیه (این میشه بیزینس آبجکت شما)
        public class Sample 
    {
    public int Id { get; set; }
    public string Name { get; set; }
    public string PersianDate { get; set; }
    }


    طبق کدتون استفاده ازش همچین چیزی میشه
            private void button1_Click(object sender, EventArgs e) 
    {
    var dataList = new List<Sample>();
    var bindForsh = new DataClasses1DataContext();


    var q77 = from p77 in bindForsh.Tables
    orderby p77.Id descending
    select p77;

    foreach (var item in q77)
    {
    dataList.Add(new Sample() { Id = item.Id, Name = item.name, PersianDate = calender.ConvertToP(item.datekarshenasi) });
    }


    dataGridView1.DataSource = dataList;
    }
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  20. #20
    کاربر دائمی آواتار nassim0
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    199

    نقل قول: خطا در persia.dll بخاطر سال کبیسه

    نقل قول نوشته شده توسط محمد آشتیانی مشاهده تاپیک
    سلام
    قضیه به این ترتیب هست که ، وقتی شما دارید مقدار یک ردیف از یک ستون بایند شده رو به تاریخ شمسی تغییر می دید و نتیجه رو درون همون فیلد میریزید ، تاریخ تبدیل شده از دید برنامه فرمتش میلادی هست ، برای همینه که به شما خطا میده

    حالا راه حل هایی هم وجود داره
    1- اینکه کل ستون های مورد نیاز رو با کد نویسی بسازید و مقادیر رو با یک حلقه foreach درون دیتاگرید بریزید (یعنی دیتاگریدتون به دیتاسورس بایند نباشه)
    2- روش فعلی رو انجام بدید ، اما بعد از بایند شدن ، ستون تاریخ میلادی رو مخفی کنید و یک ستون بصورت دستی بسازید و مقادیر تبدیل شده رو داخلش بریزید.
    3- یک Business Object بسازید و نتیجه کوئریتون رو در یک لیست از اون آبجکت بریزید و اون لیست رو به دیتا گرید بایند کنید.

    منظورم از گزینه سوم همچین چیزیه (این میشه بیزینس آبجکت شما)
        public class Sample 
    {
    public int Id { get; set; }
    public string Name { get; set; }
    public string PersianDate { get; set; }
    }


    طبق کدتون استفاده ازش همچین چیزی میشه
            private void button1_Click(object sender, EventArgs e) 
    {
    var dataList = new List<Sample>();
    var bindForsh = new DataClasses1DataContext();


    var q77 = from p77 in bindForsh.Tables
    orderby p77.Id descending
    select p77;

    foreach (var item in q77)
    {
    dataList.Add(new Sample() { Id = item.Id, Name = item.name, PersianDate = calender.ConvertToP(item.datekarshenasi) });
    }


    dataGridView1.DataSource = dataList;
    }
    جناب آقای آشتیانی از لطفتون و وقتی که برام گذاشتین ممنونم . با روش شما مشکلم برطرف شد . زنده باشید .

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

  1. خطا در mfc dll
    نوشته شده توسط sara_she در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 5
    آخرین پست: چهارشنبه 06 دی 1391, 19:57 عصر
  2. پاسخ: 6
    آخرین پست: دوشنبه 15 فروردین 1390, 10:49 صبح
  3. سوال: مشکل در ذخیره تاریخ همراه با ساعت در persia.dll
    نوشته شده توسط mohsen_namad در بخش ASP.NET Web Forms
    پاسخ: 6
    آخرین پست: سه شنبه 20 مهر 1389, 01:54 صبح
  4. بروز خطا در دلفی هنگام ایجاد یک DLL که شامل کامپوننت ADO می باشد
    نوشته شده توسط AmeliSh در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 1
    آخرین پست: سه شنبه 11 بهمن 1384, 11:18 صبح
  5. پیغام خطا در استفاده دینامیک از DLL
    نوشته شده توسط یاسر احسانی در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: جمعه 16 مرداد 1383, 19:10 عصر

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

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