C# 如何在c中从SQL到datetimepicker检索日期和时间?

C# 如何在c中从SQL到datetimepicker检索日期和时间?,c#,sql,winforms,datetimepicker,C#,Sql,Winforms,Datetimepicker,如果我在DB中输入一个已经输入的值,然后单击windows窗体中的按钮retrieve,那么我必须从SqlReady输入的值中检索datetimepicker1的日期和时间。 请更正我的密码。 这是我的密码 private void button9_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection("Data Source=NIFAL;Initial Catalog=

如果我在DB中输入一个已经输入的值,然后单击windows窗体中的按钮retrieve,那么我必须从SqlReady输入的值中检索datetimepicker1的日期和时间。 请更正我的密码。 这是我的密码

    private void button9_Click(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection("Data Source=NIFAL;Initial Catalog=LaundrySystem;Integrated Security=True;");
        con.Open();
        str = "select * from LaundrySystemTable where laundID='" + textBox1.Text.Trim() + "'";
        cmd = new SqlCommand(str, con);
        SqlDataReader reader = cmd.ExecuteReader();
        if (reader.Read())
        {
            string temp1 = reader["entryDate"].ToString();
            DateTime dt1 = DateTime.Parse(temp1);
            dateTimePicker1.Value = dt1.ToString("MM:dd:yyyy");
            reader.Close();
            con.Close();
        }
    }

切勿使用这种易受SQL inkjection攻击的SQL,请改用参数:

using (SqlConnection con = new SqlConnection("Data Source=NIFAL;Initial Catalog=LaundrySystem;Integrated Security=True;"))
{
  string sql = "select entryDate from LaundrySystemTable where laundID=@id";
  var cmd = new SqlCommand( sql, con );
  cmd.Parameters.AddWithValue( "@id", textBox1.Text.Trim() ); // if its type is not string, then do the conversion here
  con.Open();
  SqlDataReader reader = cmd.ExecuteReader();
  if (reader.Read())
  {
    dateTimePicker1.Value = (DateTime?)reader["entryDate"];
  }
  con.Close();
}

只需删除ToString部分我如何用同样的方法检索时间?也添加时间字段。在C端,您可以将其转换为DateTime?。如果reader.Read{dateTimePicker1.Value=DateTimereader[C_Date];dateTimePicker2.Value=DateTimereader[C_Time];}指定的强制转换无效。这是我从LaundrySystemTable中选择entryDate、castC_Time作为DateTime作为[C_Time]的错误,其中laundID=@id