2017-06-17 3 views
0

Ich benutze SQL-Server 2012 und ich habe eine DOB-Spalte in meiner Tabelle und der Typ ist Nvarchar (50), ich verwendete Datums-Datentyp, bevor ich in Nvarchar geändert. Ich nehme das Geburtsdatum an, indem ich das Kombinationsfeld (Monat, Datum, Jahr) verwende. Ich habe den Code beigefügt. Bitte schau hinein und hilf mir. DankeKonvertierung fehlgeschlagen beim Konvertieren von Datum und oder Zeit aus Zeichenkette

string dob = cmbDate.Text + "/" +cmbMonth.Text + "/"+cmbYear.Text; 

query= "Insert into Admissions(
       Admission_date, 
       Student_name, 
       Father_name, 
       Mother_name, 
       DOB, 
       Gender, 
       Address, 
       State, 
       City, 
       Pincode, 
       Admission_for, 
       Previous_school,Fees 
       ) 
       values 
       ('"+txtAdmDate.Text+"','"+ 
       txtStudentName.Text +"','"+ 
       txtFatherName.Text +"','"+ 
       txtMotherName.Text +"','"+ 
       dob+"','"+ 
       gender+"','"+ 
       txtAddress.Text +"','"+ 
       txtState.Text +"','"+ 
       txtCity+"','"+ 
       txtPincode.Text +"','"+ 
       cmbClass.Text+"','"+ 
       txtPreviousSchool.Text +"','"+ 
       txtFees.Text +"')"; 

     cmd = new SqlCommand(query,con); 
     con.Open(); 
     cmd.ExecuteNonQuery(); 
     con.Close(); 
+3

Erfahren Sie parametrisierte Abfragen zu verwenden, Parameter mit dem richtigen Typ bereitstellt. Voila! Das Problem ist behoben. –

+0

füge dies vor query = ... >> dob = '' '+ dob +' '' ' –

+0

ich möchte Ad-hoc-Abfrage verwenden. Bitte sag mir warum ich diesen Fehler bekomme. – SATYA

Antwort

0

Verwenden Sie CreateParameter() Methode, um Ihre Parameter in Ihre Abfrage zu setzen.
Die Parameter sind stark typisiert, sodass Sie Probleme mit falschen Umwandlungen vermeiden können.

Referenz:
CreateParameter
SqlParameter
IDataParameterCollection

var myParam = cmd.CreateParameter(); 
// Add values, type, direction, etc... 
cmd.Parameters.Add(myParam); 
Verwandte Themen