Вы не можете разобрать временной интервал таким образом.Попробуйте использовать Parse и соответствующую культуру:
System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");
DateTime aDate = DateTime.Parse(appDate.Text, culture);
TimeSpan aTime = DateTime.Parse(appTime.Text).TimeOfDay;
Кроме того, у Access нет особого времени, поэтому попробуйте (хотя я не могу проверить это в данный момент):
con.Parameters.Add("@time", OleDbType.Date).Value = aTime;
Если это не сработает, вам, возможно, придется использовать грубую силу, используя эпоху (числовая нулевая дата) VBA DateTime:
DateTime vbaEpoch = new DateTime(1899, 12, 30);
System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");
DateTime aDate = DateTime.Parse(appDate.Text, culture);
DateTime aTime = vbaEpoch.AddTicks(DateTime.Parse(appTime.Text).TimeOfDay.Ticks);
и:
con.Parameters.Add("@time", OleDbType.Date).Value = aTime;
Кроме того, вы можете вырезать все это, используя одно поле даты-времени :
DateTime aDateTime = DateTime.Parse(appDate.Text + " " + appTime.Text, culture);