csharpdoost
پنج شنبه 14 بهمن 1400, 23:38 عصر
دوستان سلام.
وقتی درتنظیمات تاریخ ویندوز ، فرمت را در حالت انگلیسی یا math windows display قرار میدم ثبت تاریخ در اکسس و نمایش تاریخ در دیتاگرید مشکلی نداره
اما وقتی به persian تغییر میدم طبق تصویر زیر در دیتابیس اکسس به صورت تاریخ فارسی اما به صورت برعکس ثبت میشه و موقع نمایش در دیتاگرید هم بصورت صحیح نشون نمیده. کسی میدونه چطوری میشه درست ثبت و نمایش داد؟ ممنون
153675 153676
موقع ثبت از متد زیر برای تبدیل شمسی به میلادی استفاده میشه :
public DateTime shamsitomiladi_D(string s)
{
string dat, sal, mah, roz;
DateTime ret;
dat = s;
sal = dat.Substring(0, 4);
mah = dat.Substring(5, 2);
roz = dat.Substring(8, 2);
PersianCalendar pc = new PersianCalendar();
ret = pc.ToDateTime(Convert.ToInt32(sal), Convert.ToInt32(mah), Convert.ToInt32(roz), 0, 0, 0, 0);
return ret;
}
موقع نمایش در دیتاگرید هم به صورت زیر اول به string تبدیل و بعد نمایش میده :
public void RefreshGrid()
{
DataTable dt = conct.selectAll_from_Factor(); //Works great
System.Data.DataTable dt2 = new System.Data.DataTable();
dt2.Columns.Add("numfactor", typeof(int));
dt2.Columns.Add("companyname", typeof(string));
dt2.Columns.Add("modirforoush", typeof(string));
dt2.Columns.Add("datefactor", typeof(string));
dt2.Columns.Add("description", typeof(string));
int row = 0;
foreach (DataRow arow in dt.Rows)
{
dt2.Rows.Add();
dt2.Rows[row]["numfactor"] = arow["numfactor"];
dt2.Rows[row]["companyname"] = arow["companyname"];
dt2.Rows[row]["modirforoush"] = arow["modirforoush"];
dt2.Rows[row]["description"] = arow["description"];
string st = conct.miladiToshamsi((DateTime)arow["datefactor"]).ToString();
dt2.Rows[row]["datefactor"] = st;
row++;
}
dataGridView2.DataSource = dt2;;
}
وقتی درتنظیمات تاریخ ویندوز ، فرمت را در حالت انگلیسی یا math windows display قرار میدم ثبت تاریخ در اکسس و نمایش تاریخ در دیتاگرید مشکلی نداره
اما وقتی به persian تغییر میدم طبق تصویر زیر در دیتابیس اکسس به صورت تاریخ فارسی اما به صورت برعکس ثبت میشه و موقع نمایش در دیتاگرید هم بصورت صحیح نشون نمیده. کسی میدونه چطوری میشه درست ثبت و نمایش داد؟ ممنون
153675 153676
موقع ثبت از متد زیر برای تبدیل شمسی به میلادی استفاده میشه :
public DateTime shamsitomiladi_D(string s)
{
string dat, sal, mah, roz;
DateTime ret;
dat = s;
sal = dat.Substring(0, 4);
mah = dat.Substring(5, 2);
roz = dat.Substring(8, 2);
PersianCalendar pc = new PersianCalendar();
ret = pc.ToDateTime(Convert.ToInt32(sal), Convert.ToInt32(mah), Convert.ToInt32(roz), 0, 0, 0, 0);
return ret;
}
موقع نمایش در دیتاگرید هم به صورت زیر اول به string تبدیل و بعد نمایش میده :
public void RefreshGrid()
{
DataTable dt = conct.selectAll_from_Factor(); //Works great
System.Data.DataTable dt2 = new System.Data.DataTable();
dt2.Columns.Add("numfactor", typeof(int));
dt2.Columns.Add("companyname", typeof(string));
dt2.Columns.Add("modirforoush", typeof(string));
dt2.Columns.Add("datefactor", typeof(string));
dt2.Columns.Add("description", typeof(string));
int row = 0;
foreach (DataRow arow in dt.Rows)
{
dt2.Rows.Add();
dt2.Rows[row]["numfactor"] = arow["numfactor"];
dt2.Rows[row]["companyname"] = arow["companyname"];
dt2.Rows[row]["modirforoush"] = arow["modirforoush"];
dt2.Rows[row]["description"] = arow["description"];
string st = conct.miladiToshamsi((DateTime)arow["datefactor"]).ToString();
dt2.Rows[row]["datefactor"] = st;
row++;
}
dataGridView2.DataSource = dt2;;
}