Beim Hinzufügen von Daten zur Datenbank wird in date_to und date_from ein Fehler angezeigt. In der SQL Server-Datenbank sind die Datentypen für date_to und date_from Datum. eine Lösung vorschlagen.
try
{
cmd = new SqlCommand("insert into license1 values(@l_id,@customer_id,@d_id,@device_name,@from,@to)", cn);
cmd.Parameters.AddWithValue("@l_id", license_id.Text);
cmd.Parameters.AddWithValue("@customer_id", c_comboBox4.Text);
cmd.Parameters.AddWithValue("@d_id", d_id_comboBox4.Text);
cmd.Parameters.AddWithValue("@device_name", d_name_comboBox5.Text);
cmd.Parameters.AddWithValue("@to", date_to.Text);
cmd.Parameters.AddWithValue("@from", date_from.Text);
cn.Open();
a = cmd.ExecuteNonQuery();
if (a > 0)
{
MessageBox.Show("Data Submitted");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Antworten:
7 für die Antwort № 1Nehmen Sie die Bekehrung selbst in die Hand:
cmd.Parameters.AddWithValue("@to", DateTime.Parse( date_to.Text));
cmd.Parameters.AddWithValue("@from", DateTime.Parse( date_from.Text));
und wenn dies immer noch fehlschlägt, verwenden Sie eine Version von DateTime.ParseExact()
mit einem geeigneten Format und CultureInfo.
Möglicherweise möchten Sie eine robustere und umfassendere Validierungsschicht hinzufügen. Datums- und Zahlenangaben sind sehr empfindlich für Tippfehler, Benutzereinstellungen und Benutzerannahmen.
Immer annehmen TextBox.Text
ist voller fehler.
4 für die Antwort № 2
wenn der Benutzer das Datumsformat eingibt als: yyyy-MM-dd
dann versuche das:
String strDateFormat= "yyyy-MM-dd";//change accordingly if format is something different
DateTime to=DateTime.ParseExact(date_to.Text,strDateFormat, CultureInfo.InvariantCulture);
DateTime from=DateTime.ParseExact(date_from.Text, strDateFormat, CultureInfo.InvariantCulture);
cmd.Parameters.AddWithValue("@to", to);
cmd.Parameters.AddWithValue("@from", from);
3 für die Antwort № 3
Versuche dies
cmd.Parameters.AddWithValue("@to",Convert.ToDateTime(date_to.Text));
cmd.Parameters.AddWithValue("@from",Convert.ToDateTime( date_from.Text});
0 für die Antwort № 4
Ich denke, Ihr Datumsformat könnte das Problem verursachen. Sie müssen ein vom SQL-Provider unterstütztes Datumsformat verwenden. Die meisten SQL verwenden das MM-TT-JJJJ-Format. Wenn Sie also den 21-1-2014 bestehen, wird der SQL Server nicht akzeptiert, da der 21. Monat nicht vorhanden ist.