mahan0o0
یک شنبه 09 فروردین 1394, 10:33 صبح
من یک maskedtextbox دارم که user تاریخ تولدشو توش به شمسی وارد می کنه و من اونو به میلادی تبدیل می کنم و توی sql نوع داده رو datetime گذاشتم و تاریخ رو میلادی ذخیره می کنه. مشکل الان اینه که من وقتی می خوام اطلاعات رو توی gridview نشون بدم تاریخ رو میلادی نشون میده ولی من می خوام شمسی به کاربر نشون بده. من یک datatable جدید ساختم که همه اطلاعات datatable قبی رو توی جدید کپی میکنه و فقط اگه به تاریخ برسه به شمسی تبدیل میکنه ولی نمیدونم چرا gridview من در فرم نمایش داده نمیشه و datatable جدید فقط 1 سطر رو تبدیل می کنه. تا قبل اینکه تبدیل رو انجام بدم و اطلاعات رو توی datatable جدید بزارم همه چیز درست بود فقط تاریخ میلادی بود.کدم رو واستون گذاشتم ممنون میشم راهنمایی کنید. می دونم روشهای دیگه ای هم است که نیاز به این تبدیلات نیست ولی واسه برنامم حتما می خوام به این شکل باشه.
DLL LAYER
public DataTable select(string SQL)
{
cmd.CommandText = SQL;
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
BLL LAYER
public DataTable viewd()
{
“Connection string”
Con.open();
DataTable dt = das.select("select * from tblusr order by id DESC");
Con.close();
return dt;
}
private void Form1_Load(object sender, EventArgs e)
{
BLL b = new BLL();
DataTable dt = new DataTable();
dt = b.viewd();
DataTable dtFa = new DataTable();
for (int i = 0; i < dt.Columns.Count; i++)
{
dtFa.Columns.Add(dt.Columns[i].ToString());
}
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow newR = dt.NewRow();
for (int j = 0; j < dt.Columns.Count; j++)
{
dtFA.Rows.Add();
newR = dt.NewRow();
if (dt.Columns[j].Caption == "bDate")
{
DateTime dtim;
DateTime.TryParse(dt.Rows[i][j].ToString(), out dtim);
persianDate dateFarsi = new persianDate(dtim);
newR[j] = dateFarsi.simpleDate();
}
else
{
newR[j] = dt.Rows[i][j];
}
dtFarsi.Rows.Add(newR);
}
}
dataGridView1.DataSource = dt;
DLL LAYER
public DataTable select(string SQL)
{
cmd.CommandText = SQL;
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
BLL LAYER
public DataTable viewd()
{
“Connection string”
Con.open();
DataTable dt = das.select("select * from tblusr order by id DESC");
Con.close();
return dt;
}
private void Form1_Load(object sender, EventArgs e)
{
BLL b = new BLL();
DataTable dt = new DataTable();
dt = b.viewd();
DataTable dtFa = new DataTable();
for (int i = 0; i < dt.Columns.Count; i++)
{
dtFa.Columns.Add(dt.Columns[i].ToString());
}
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow newR = dt.NewRow();
for (int j = 0; j < dt.Columns.Count; j++)
{
dtFA.Rows.Add();
newR = dt.NewRow();
if (dt.Columns[j].Caption == "bDate")
{
DateTime dtim;
DateTime.TryParse(dt.Rows[i][j].ToString(), out dtim);
persianDate dateFarsi = new persianDate(dtim);
newR[j] = dateFarsi.simpleDate();
}
else
{
newR[j] = dt.Rows[i][j];
}
dtFarsi.Rows.Add(newR);
}
}
dataGridView1.DataSource = dt;