【发布时间】:2022-01-04 20:58:12
【问题描述】:
我想将所有 DataGridView 行插入数据库。 我遇到了这个错误
方法“ToString”没有重载需要 1 个参数。
for (int i = 0; i < TimesDgv.Rows.Count - 1; i++)
{
OleDbCommand cmd = new OleDbCommand("Insert into TimesTBL(PeriodName,TimeFrom,TimeTo,Duration) values (@PeriodName,@TimeFrom,@TimeTo,@Duration)", con);
cmd.Parameters.AddWithValue("PeriodName", TimesDgv.Rows[i].Cells[0].Value);
cmd.Parameters.AddWithValue("TimeFrom", TimesDgv.Rows[i].Cells[1].Value.ToString("hh:mm"));
cmd.Parameters.AddWithValue("TimeTo", TimesDgv.Rows[i].Cells[2].Value.ToString("hh:mm"));
cmd.Parameters.AddWithValue("Duration", TimesDgv.Rows[i].Cells[3].Value);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
cmd = null;
}
【问题讨论】:
-
我的问题通过
Convert.ToDateTimeConvert.ToDateTime(TimesDgv.Rows[i].Cells[1].Value).ToString("hh:mm")解决了 -
问题是
DataGridViewCell.Value属性被键入为object(想想看,一个单元格可以容纳任何东西,它必须是object类型)docs.microsoft.com/en-us/dotnet/api/…。在您的特定情况下,该对象指的是 DateTime,但属性类型是对象。你不必转换它,你可以简单地转换它 -
如何投射?
-
((DateTime)(TimesDgv.Rows[i].Cells[2].Value)).ToString("Format")