C# 对象类型System.Windows.Forms.DateTimePicker中不存在映射

C# 对象类型System.Windows.Forms.DateTimePicker中不存在映射,c#,winforms,C#,Winforms,当我按下注册按钮时,会出现一个消息框,然后发生以下情况: 不存在从对象类型System.Windows.Forms.DateTimePicker到已知托管提供程序本机类型的映射 我该如何解决这个问题 SqlConnection sqlcon = new SqlConnection(); sqlcon.ConnectionString = @"Data Source=MYCOMPUTER-PC\SQLEXPRESS;Database=COMPPROG;User Id=user;Password

当我按下注册按钮时,会出现一个消息框,然后发生以下情况:

不存在从对象类型System.Windows.Forms.DateTimePicker到已知托管提供程序本机类型的映射

我该如何解决这个问题

SqlConnection sqlcon = new SqlConnection(); 
sqlcon.ConnectionString = @"Data Source=MYCOMPUTER-PC\SQLEXPRESS;Database=COMPPROG;User 
Id=user;Password=password";
SqlCommand scmd = new SqlCommand("SELECT COUNT (*) as cnt from USERACCOUNT", sqlcon);
SqlCommand cmd = sqlcon.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO USERACCOUNT 
(FName,MName,Sname,TxtBirth,comboGender,textBox8,textBox1,textBox2) 
VALUES(@FName,@MName,@Sname,@TxtBirth,@comboGender,@textBox8,@textBox1,@textBox2)";
cmd.Parameters.AddWithValue("@FName", FName.Text);
cmd.Parameters.AddWithValue("@MName", MName.Text);
cmd.Parameters.AddWithValue("@Sname", Sname.Text);
cmd.Parameters.AddWithValue("@TxtBirth", TxtBirth);
cmd.Parameters.AddWithValue("@textBox8", textBox8.Text);
cmd.Parameters.AddWithValue("@textBox1", textBox1.Text);
cmd.Parameters.AddWithValue("@textBox2", textBox2.Text);
cmd.Parameters.AddWithValue("@comboGender", comboGender);

sqlcon.Open();
MessageBox.Show("Record added sucessfully!", "Registration Success!");
cmd.ExecuteNonQuery();
sqlcon.Close();

正如@gunr217在评论中所说,问题来自这一行,所以将其更改为:

cmd.Parameters.AddWithValue("@TxtBirth", TxtBirth.Value);
这是查询的txtbirnath值

编辑:

  • 您的错误意味着您正在传递
    日期选择器本身,而这无法完成

我猜错误发生在
cmd.Parameters.AddWithValue(“@txtborth”,txtborth)上行?您需要获取DateTimePicker的值,而不是picker本身。这意味着“.NET不知道如何将WinForms控件转换为数据库字段。”-您应该传递一个DateTime对象(可能是TXTBORTH的属性)。