繁体   English   中英

将日期类型的DataGridView单元格值传递给DateTimePicker的C#Windows窗体

[英]C# Windows Form Passing DataGridView Cell Value of type Date to DateTimePicker

我是C#的新手,我想在DataGridView上实现CellClick事件,因此当单击它时,它将值从网格传递到文本框和dateTimePicker。

我建立了另一个dateTimePicker,用于将新数据存储到SQL数据库中的称为收益表中。 存储时,会将格式从dateTimePicker1(dd-MM-YYYY)翻转为(MM-dd-YYYY),因此表以不同的顺序存储。

这是我首先将其推送到数据库的方式:

using (connection = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=\\VBOXSVR\Projects\cw2\cw2\Database1.mdf;Integrated Security=True"))
using (SqlCommand cmd = new SqlCommand("INSERT INTO income(name,value,date) VALUES ('" + textBox1.Text + "','" + textBox2.Text + "','" + dateTimePicker1.Value.Date + "')", connection))
{
    connection.Open();
    cmd.ExecuteNonQuery();

    label1.Visible = true;
    label1.Text = "Db Upload Success!";
 }

因此,在触发返回时,日期以表格顺序显示,因此新的dateTimePicker2在表格上显示为,因此原始DateTimePicker1日期例如:2018年12月4日在表格上存储为12/04/2018在2018年3月12日显示在DateTimePicker2上

这是我尝试将Datagrid值传递回不同的文本框和新的dateTimePicker2的尝试:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
   int indexRow = e.RowIndex; // get the selected Row Index
   DataGridViewRow row = dataGridView1.Rows[indexRow];
   textBox3.Text = row.Cells[1].Value.ToString();
   textBox4.Text = row.Cells[2].Value.ToString();
   dateTimePicker2.Value = Convert.ToDateTime(row.Cells[3].Value);             
 }

我已经做过一些研究,但是我不能只更改设置为日期的本地SQL数据库中的格式,但是如何将日期格式化为dd-MM-YYYY格式?

尝试这个:

dateTimePicker2.Value = DateTime.ParseExact(row.Cells[3].Value, "dd-MM-yyyy", CultureInfo.InvariantCulture)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM