winforms1 C # pomocí SQL Server 2008

hlasů
-3
con = new SqlConnection(cs);
con.Open();
DateTime current = DateTime.Now;
current = Convert.ToDateTime(DateTime.Now.ToString(MM/dd/yyyy hh:mm:ss));
SqlCommand cmd = new SqlCommand(@INSERT IGNORE  INTO CustomerDetails
(CustomerId, Date, Name, Gender, Address, Phone, Email, MobileNo,Notes)
 VALUES  (' + txtCustomerID.Text + ',' + current + ',' + 
 txtCustomerName.Text + ','+Gender+','+txtAddress.Text+',' + txtPhone.Text 
 + ',' + txtEmail.Text+',' + txtMobileNo.Text + ',' +txtNotes.Text + '), 
      con);

cmd.ExecuteNonQuery();
con.Close();

Já používám tento kód v databázi můj den má datetime datový typ, ale když jsem ukládání dat prostřednictvím formuláře je zobrazeno

Konverze varchar datový typ na typ datetime vedlo out-of-rozsah hodnot. Příkaz byl ukončen

Co je za problém? Proč se tato chyba se zobrazuje?

Položena 12/03/2014 v 00:53
uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

použití getdate()nebo SYSDATETIME()funkci SQL, pokud chcete uložit aktuální datum.

Zkuste to:

SqlCommand cmd = new SqlCommand(@"INSERT IGNORE  INTO CustomerDetails
(CustomerId, Date, Name, Gender, Address, Phone, Email, MobileNo,Notes)
 VALUES  ('" + txtCustomerID.Text + "',+ getdate() + ,'" + 
 txtCustomerName.Text + "','"+Gender+"','"+txtAddress.Text+"','" + txtPhone.Text 
 + "','" + txtEmail.Text+"','" + txtMobileNo.Text + "','" +txtNotes.Text + "')", 
      con);

Tip: Váš dotaz je otevřen pro SQL injection útoků, takže bych tě doporučuji použít Paramterised dotazy se jim vyhnout.

Odpovězeno 12/03/2014 v 01:36
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more