我知道这是一个老问题,但我不明白为什么。DataGridView格式DateTime
我有2个空隙中2个按钮结合GENERATE和SAVE:
private void btn_generate_Click(object sender, EventArgs e)
{
DateTime startdate = Convert.ToDateTime(textstarteddate.Text);
DateTime enddate = new DateTime (startdate.Year, 12, 31);
Int64 addedDays = Convert.ToInt64(textdaycount.Text);
string taskID = texttaskID.Text;
string machine = cb_machineID.Text.Trim();
string note = texttasknote.Text;
string runningtime = RMT.Text;
string period = cb_periodID.Text.Trim();
_dtdate.Columns.Add(new DataColumn("Maintenance Date", typeof(DateTime)));
_dtdate.Columns.Add(new DataColumn("TaskID", typeof(String)));
_dtdate.Columns.Add(new DataColumn("Machine", typeof(String)));
_dtdate.Columns.Add(new DataColumn("Note", typeof(String)));
_dtdate.Columns.Add(new DataColumn("Period", typeof(String)));
_dtdate.Columns.Add(new DataColumn("Running Time", typeof(String)));
_dtdate.Rows.Clear();
G1.DataBindings.Clear();
if (cb_typescheID.Text == "Fix Date")
{
do
{
_dtdate.Rows.Add(startdate.Date, taskID, machine, note, period);
startdate = startdate.AddDays(addedDays);
G1.Refresh();
//DateTime end = startdate;
}
while (startdate <= enddate);
}
G1.DataSource = _dtdate;
G1.Columns["Maintenance Date"].DefaultCellStyle.Format = "d";
}
和
private void btn_save_Click(object sender, EventArgs e)
{
if (cb_typescheID.Text == "Fix Date")
{
foreach (DataRow dr in _dtdate.Rows)
{
sqlstr = sqlstr + " INSERT INTO [PerformTask] (Year, Date, TasKID, MachineID, PerformStatus, ScheduleID, PeriodID) Values ('" + startdate.Year + "', '" + dr["Maintenance Date"].ToString() + "',";
sqlstr = sqlstr + "'" + texttaskID.Text.Trim() + "', '" + machine + "', 'RS_Open', '" + typeschedule + "', '" + period + "')";
G1.Columns["Maintenance Date"].DefaultCellStyle.Format = "d";
}
}
}
我想尽办法把它转换为仅日期(DD/MM/yyyy)但它仍然显示在DataGridView(G1)上,但是当我尝试将它保存到SQL中的数据表中时,无论我如何转换它,它的格式仍然是“dd/MM/yyyy hh:mm:ss tt”。我已经阅读了关于这个问题的旧主题,尝试了他们的方式,但仍然无法按照我想要的方式保存数据。
请帮忙。谢谢。
谢谢,它工作,只是添加信息,而不是'startdate.Date.ToString(“dd/MM/yyyy”)',你可以使用'startdate.Date.ToShortDateString()'。 – Serenade
不错。请标记为正确答案。再见 –