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

نام تاپیک: نمايش تاريخ شمسي در گريد

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    tehran
    پست
    207

    نمايش تاريخ شمسي در گريد

    سلام دوستان
    من تاريخ رو در ديتا بيس به صورت DateTime ذخيره كردم.براي نمايش اون در جدول مي خوام شمسي نشون بده .توي فرم از يه مبدل شمسي به ميلادي و به عكس استفاده مي كنم اما تو جدول نميخوام اينكارو بكنم.
    آيا امكان داره كه بشه از قابليت هاي خود گرديد براي فراخواني كلاس مبدلم استفاده كنم؟

  2. #2
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    1,025

    نقل قول: نمايش تاريخ شمسي در گريد

    منظورتون رو واضحتر بگید

  3. #3
    کاربر دائمی آواتار asd_moghadas
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    اصفهان
    پست
    143

    نقل قول: نمايش تاريخ شمسي در گريد

    سلام دوست غزیز از تابع زیر درdbاستفاده کن
    کد HTML:
    CREATE FUNCTION GetFarsiDate(@DateLatin AS DateTime)
    RETURNS CHAR(10) AS 
    BEGIN 
    DECLARE @DateFarsi CHAR(10)
    DECLARE @Days int
    DECLARE @Tmp int
    DECLARE @Year_Farsi int
    DECLARE @Month_Farsi int
    DECLARE @Day_Farsi int
    SET @Days = DATEDIFF(DAY, '19000320', @DateLatin)
    SET @Year_Farsi = 1279
    SET @Month_Farsi = 01
    SET @Day_Farsi = 01
    SET @Tmp = @Days / 365
    IF (@Tmp * 365) + ((@Tmp + 3) / 4) > @Days
    SET @Tmp = @Tmp - 1
    SET @Year_Farsi = @Year_Farsi + @Tmp
    SET @Days = @Days - (@Tmp * 365) - ((@Tmp + 3) / 4)
     
    IF @Days <= 186
    BEGIN
    SET @Tmp = @Days / 31
    SET @Month_Farsi = @Month_Farsi + @Tmp
    SET @Days = @Days - (@Tmp * 31)
    END
    ELSE
    BEGIN
    SET @Days = @Days - 186
    SET @Tmp = @Days / 30
    SET @Month_Farsi = @Month_Farsi + @Tmp + 6
    SET @Days = @Days - (@Tmp * 30)
    END
    SET @Day_Farsi = @Day_Farsi + @Days
    RETURN REPLACE(STR(@Year_Farsi, 4, 0) +
    STR(@Month_Farsi, 2, 0) +
    STR(@Day_Farsi,2, 0), ' ', '0')
    END

  4. #4
    کاربر دائمی آواتار asd_moghadas
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    اصفهان
    پست
    143

    نقل قول: نمايش تاريخ شمسي در گريد

    ببخشید کدمربوط به دیتاکرید درخودبرنامه
    کد HTML:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    namespace MyTest
    {
    public partial class Form1 : Form
    {
    private SqlConnection SqlCon;
    private SqlCommand SqlCmd;
    private SqlDataAdapter SqlDA;
    private DataTable DTable;
    private long Id;
    private long Cal;
    public Form1()
    {
    InitializeComponent();
    }
    private void Binding()
    {
    //try
    //{
    //DateTime dt = Convert.ToDateTime(FarsiLibrary.Utils.PersianDateC onverter.ToPersianDate(DateEtebar22.SelectedDateTi me));
    SqlCon = new SqlConnection();
    SqlCon.ConnectionString = MyTest.Properties.Settings.Default.MyTestConnectio nString;
    SqlCon.Open();
    SqlCmd = new SqlCommand();
    SqlCmd.Connection = SqlCon;
    SqlCmd.CommandType = CommandType.Text;
    SqlCmd.CommandText = "SELECT *FROM MyDate"; //WHERE (ID=@Id)";
    //SqlCmd.Parameters.Add("@Id", SqlDbType.BigInt).Value = Id;
     
    SqlDA = new SqlDataAdapter();
    SqlDA.SelectCommand = SqlCmd;
    SqlCmd.ExecuteNonQuery();
    DTable = new DataTable();
    SqlDA.Fill(DTable);
    dataGridView1.DataSource = DTable;
    // SqlCon.Close();
    //dataGridView1.Rows.Clear();
    //if (DTable.Rows.Count > 0)
    //{
    // FarsiLibrary.Utils.PersianDate p1, p2;
    // DataRow[] Drows = new DataRow[DTable.Rows.Count];
    // DTable.Rows.CopyTo(Drows, 0);
    // for (int i = 0; i < Drows.Length - 1; i++)
    // {
    // for (int j = i + 1; j < Drows.Length; j++)
    // {
    // p1 = FarsiLibrary.Utils.PersianDateConverter.ToPersianD ate((DateTime)Drows[i].ItemArray[6]);
    // p2 = FarsiLibrary.Utils.PersianDateConverter.ToPersianD ate((DateTime)Drows[j].ItemArray[6]);
    // if (p1 > p2)
    // {
    // DataRow dr;
    // dr = Drows[i];
    // Drows[i] = Drows[j];
    // Drows[j] = dr;
    // }
    // }
    // }
    // for (int j = 0; j < Drows.Length; j++)
    // {
    // DateTime Persian = FarsiLibrary.Utils.PersianDateConverter.ToPersianD ate((DateTime)Drows[j].ItemArray[6]);
    // if (Persian >= DateEtebar22.SelectedDateTime)
    // {
    // if ((byte)Drows[j].ItemArray[4] == 1)
    // {
    // Cal += (long)Drows[j].ItemArray[8];
    // dataGridView1.Rows.Add(++counter, Persian, Drows[j].ItemArray[1], Drows[j].ItemArray[1]
    // , 0, Drows[j].ItemArray[8], Cal);
    // }
    /*if (((byte)Drows[j].ItemArray[4] == 3) || ((byte)Drows[j].ItemArray[4] == 4))
    {
    Cal -= (long)Drows[j].ItemArray[8];
    dataGridView1.Rows.Add(++counter, Persian, Drows[j].ItemArray[2], Drows[j].ItemArray[5]
    , Drows[j].ItemArray[8], 0, Cal);
    }*/
    //}
    SqlCon.Close();
     
    //catch (Exception ex)
    //{
    // MessageBox.Show(ex.Message);
    //}
    //finally
    //{
    // SqlCon.Close();
    //}
     
    }
    private void Form1_Load(object sender, EventArgs e)
    {
    Binding();
    }
    }
    } 

  5. #5
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    tehran
    پست
    207

    نقل قول: نمايش تاريخ شمسي در گريد

    ممنون دوست عزيز.
    اما فراموش كردم بگم كه من از Devexpress استفاده مي كنم.اونجا ما به شيوه خاصي با ديتابيس وصل ميشيم
    و به شيوه خاصي فراخواني مي كنيم.من نمي تونم تابع رو به اين شيوه كه شما نوشتيد تو ديتابيس بزارم.
    ممنون

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

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