نقل قول: نمايش تاريخ شمسي در گريد
نقل قول: نمايش تاريخ شمسي در گريد
سلام دوست غزیز از تابع زیر در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
نقل قول: نمايش تاريخ شمسي در گريد
ببخشید کدمربوط به دیتاکرید درخودبرنامه
کد 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();
}
}
}
نقل قول: نمايش تاريخ شمسي در گريد
ممنون دوست عزيز.
اما فراموش كردم بگم كه من از Devexpress استفاده مي كنم.اونجا ما به شيوه خاصي با ديتابيس وصل ميشيم
و به شيوه خاصي فراخواني مي كنيم.من نمي تونم تابع رو به اين شيوه كه شما نوشتيد تو ديتابيس بزارم.
ممنون