2016-06-23 5 views
0

Ich möchte einige Parameter zu einer Tabelle hinzufügen, und ich bekomme diesen Fehler in Visual Studio 2013. Ich habe Probleme mit Datum & Zeit. Mein Datum & Zeitdatentypen, die in SQL Server 2008 R2 verwendet werden, sind Date und Time(7). Ich erhalte diese StörungKonvertierung fehlgeschlagen

Fehler bei der Konvertierung, wenn Datum Umwandlung und/oder Zeit aus Zeichenkette

Was ist mein Fehler?

Mein Code:

string strquery = "select count(*) from SaloonGeneralReservation where [email protected]"; 

    SqlConnection connection2 = DBConnection.getConnection(); 
    connection2.Open(); 
    SqlCommand cmd2 = new SqlCommand(); 
    cmd2.Connection = connection2; 
    cmd2.CommandText = strquery; 

    cmd2.Parameters.Add("@SaloonReservationDate", txt1_date.Text); 


    int intRowCount = (int) cmd2.ExecuteScalar(); 
    txt1_date.Text = intRowCount.ToString(); 
    connection2.Close(); 


    if (intRowCount == 1) 
    { 
     Messages myMsg = new Messages(); // ایجاد نمونه از کلاس 
     myMsg.CreateMessageAlert("سالن در این تاریخ رزرو شده است . لطفا تاریخ دیگری وارد نمایید."); 
     txt1_date.Text = ""; 

     } 


    else 
    { 
     string strQuery = "INSERT INTO [WeedingSalonGeneralRes](Date,Time,Fruit,Drink,Desert,MainFood,Salad,TableFlower,SaloonLighting,Saloondesign,SloonCrew,Pastry,GiftCard,customer_id)" + "VALUES(@Date,@Time,@Fruit,@Drink,@Desert,@MainFood,@Salad,@TableFlower,@SaloonLighting,@Saloondesign,@SloonCrew,@Pastry,@GiftCard,@customer_id)"; 


     SqlConnection connection = DBConnection.getConnection(); 
     connection.Open(); 
     SqlCommand cmd = new SqlCommand(); 
     cmd.Connection = connection; 
     cmd.CommandText = strQuery; 


     string cis = Session["customerID"].ToString(); 

     cmd.Parameters.Add("@Date", txt1_date.Text); 
     cmd.Parameters.Add("@Time", txt2_time.Text); 
     cmd.Parameters.Add("@Fruit", fruit); 
     cmd.Parameters.Add("@Drink", drink); 
     cmd.Parameters.Add("@Desert", desert); 
     cmd.Parameters.Add("@MainFood", mainfood); 
     cmd.Parameters.Add("@Salad", salad); 
     cmd.Parameters.Add("@TableFlower", tableflower); 
     cmd.Parameters.Add("@SaloonLighting", saloonlighting); 
     cmd.Parameters.Add("@Saloondesign", saloondesing); 
     cmd.Parameters.Add("@SloonCrew", salooncrew); 
     cmd.Parameters.Add("@Pastry", pastry); 
     cmd.Parameters.Add("@GiftCard", giftcard); 
     cmd.Parameters.Add("@customer_id", cis); 


     cmd.ExecuteNonQuery(); 
     connection.Close(); 
     Response.Redirect("ReservationSucces.aspx"); 
    }  
+0

Bitte geben Sie ein Beispiel für die Daten und Zeiten in Ihrer Frage. Und was ist Ihr aktuelles Gebietsschema für die Datenbank - ein nicht übereinstimmendes Gebietsschema ist eine häufige Fehlerquelle beim Umgang mit Daten –

+0

Dies ist mein Datum Eingabeformat 2016-10-10 und das ist meine Zeit 10:00 – Ahmed

Antwort

0

Ihre TIME(7) Bedürfnisse HH:MM:SS auf ein Minimum, und HH:MM:SS.NNNNNNN maximal sein. Also, fügen Sie :00 auf Ihre Zeichenfolge für Ihre TIME, um die Konvertierung zu machen. Die DATE sollte in Ordnung sein, solange Sie YYYY-MM-DD verwenden. Sie erhalten diesen Fehler, wenn Sie YYYY-DD-MM verwenden.

+0

zum Beispiel versuche ich dieses Mal 10:00:00 und wieder habe ich diesen Fehler – Ahmed

+0

Angenommen, Sie verwenden 'YYYY-MM-DD' für Ihr' DATE', dann muss der Fehler in 'txt1_date.Text' sein. – scsimon

+0

das ist mein ganzer Code, ich überprüfe eine Condition in der ersten Abfrage. Wenn ich ein Date LooksLike im txt1_date.text habe, gebe ich meinem Kunden einen Fehler und wenn dieses Datum nicht in der Datenbank verfügbar ist, wird das Kundendatum & .... in die Tabelle eingefügt. Siehe meine aktualisierten Codes oben auf der Seite. – Ahmed