C# DataGridView中的DateTimePicker值

C# DataGridView中的DateTimePicker值,c#,winforms,datagridview,datetimepicker,C#,Winforms,Datagridview,Datetimepicker,我有一些文本框和一个日期时间选择器。上面还有一个datagridview。我将数据上传到mysql表。我想通过文本框和datetimepicker修改数据,但出现错误: System.ArgumentOutOfRangeException 在dateTimePicker.Value行上: private void dataGridView1_SelectionChanged(object sender, EventArgs e) { dateTimePicker1.Value = Conve

我有一些文本框和一个日期时间选择器。上面还有一个datagridview。我将数据上传到mysql表。我想通过文本框和datetimepicker修改数据,但出现错误:

System.ArgumentOutOfRangeException

在dateTimePicker.Value行上:

private void dataGridView1_SelectionChanged(object sender, EventArgs e) {
  dateTimePicker1.Value = Convert.ToDateTime(dataGridView1.SelectedRows[0].Cells[1].Value);

  idoTextBox.Text = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
  pkcomboBox.Text = dataGridView1.SelectedRows[0].Cells[3].Value.ToString();
  minositesbox.Text = dataGridView1.SelectedRows[0].Cells[4].Value.ToString();
  esetextBox.Text = dataGridView1.SelectedRows[0].Cells[5].Value.ToString();
  fotextBox.Text = dataGridView1.SelectedRows[0].Cells[6].Value.ToString();
  megjegyzestextBox.Text = dataGridView1.SelectedRows[0].Cells[7].Value.ToString();
}

我做错了什么?

您得到的是
ArgumentOutOfRangeException
,这意味着您很可能试图访问指定索引中不存在的值。您可能是在打电话时这样做的

dataGridView1.SelectedRows[0].Cells[7].Value.ToString();
您在这里使用的单元格索引为7,是否有可能单元格[7]不存在?

您可能没有选择行,只有一个单元格

确保设置了正确的SelectionMode属性:

dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
此外,请确保已选择行:

if (dataGridView1.SelectedRows.Count > 0) {
  dateTimePicker1.Value = Convert.ToDateTime(dataGridView1.SelectedRows[0].Cells[1].Value);
  // ...
}

已选择FullRowSelect属性。当我选择一行时,数据正确显示在其他文本框中。@GaborVirag您的日期值在网格中有什么类型的值?我的网格从mysql表中获取数据。“日期”类型。@GaborVirag更新了帖子。我能看到的另一种可能性是,您没有检查SelectedRows是否实际有行。我在dataGridView1中有8个单元格。我想首先将所有数据插入文本框和dateTimePicker,而不是ID单元格。首先,我更改了代码以从dataGridView中删除Id列。当我单击“插入”按钮并上传数据时,会发生错误。我认为dataGridView单元格编号从0开始。“日期”数据位于dataGridView的第一位。如何从错误中上传图片?您可以将错误中的文本上传到类似pastebin的内容,并在此处发布链接。当我将数据插入db表时,我会插入dateTimePicker1.Value.Date,因为我只想查看日期。但是,在dataGridView1\u SelectionChanged事件中,dateTimePicker1的值包含日期和时间(00:00)。到底是不是错?我不知道。我一直试图解决这个问题,但我不知道是什么原因造成的。你是如何将日期存储在数据库表中的?是约会时间吗?您应将其切换为日期列类型,该类型仅存储日期时间的日期部分,例如,仅2016.12.2,不存储00:00部分。其在表中的日期类型:(