2012-05-18 3 views
0

Mon code donne l'erreur ci-dessus.Chaîne non reconnue comme datetime valide

J'ai essayé de le changer en fonction du lien ci-dessous:

String was not recognized as a valid DateTime “ format dd/MM/yyyy”

mais il ne fonctionne toujours pas.

Serait reconnaissant si quelqu'un peut me diriger dans la bonne direction.

Mon code est ci-dessous:

foreach (GridViewRow row in GridView1.Rows) 

     { 

     // int RowIndex = 0; 
     // GridViewRow row = (GridViewRow)GridView1.Rows[RowIndex]; 

      Int32 intresortID = Convert.ToInt32(Request.QueryString["TypeID"]); 
      Label dtm = row.FindControl("Label1") as Label; 
      Label strRoomType = row.FindControl("Label2") as Label; 
      Label strDescription = row.FindControl("Label3") as Label; 
      TextBox Qty = row.FindControl("intQtyTextBox") as TextBox; 
      TextBox Price = row.FindControl("curPriceTextBox") as TextBox; 
      Label intWSCode = row.FindControl("intWSCodeLabel") as Label; 

      string connStr = ConfigurationManager.ConnectionStrings["bestandConnectionString"].ConnectionString; 
      using (SqlConnection Con = new SqlConnection(connStr)) 
      { 
       Con.Open(); 
       SqlCommand cmd = new SqlCommand("Update tblAvail set [email protected], [email protected] where [email protected] and [email protected] and [email protected]", Con); 

cmd.Parameters.AddWithValue ("@ dtm", DateTime.ParseExact (dtm.Text.Trim(), "jj/mm/aaaa", nul)); ligne donnant l'erreur

   cmd.Parameters.AddWithValue("@strroomtype", strRoomType.Text.Trim()); 
       cmd.Parameters.AddWithValue("@intQty", Qty.Text.Trim()); 
       cmd.Parameters.AddWithValue("@curPrice", Price.Text.Trim()); 
       cmd.Parameters.AddWithValue("@intResortID", intresortID); 

       cmd.ExecuteNonQuery(); 
       GridView1.EditIndex = -1; 
       DataBind(); 

      } 

En mode conception:

<ItemTemplate> 
     <asp:Label ID="Label1" runat="server" 
         Text='<%# Eval("Dtm", "{0:dd/MM/yyyy}") %>'></asp:Label> 
    </ItemTemplate> 

Lorsque le débogage valeur dtm se présente comme:

{text = "18/05/2012"}

+0

Pouvez-vous déboguer la méthode et de voir comment la valeur de date est à venir et l'afficher dans votre question? –

+1

Essayez d'utiliser le SqlDateTime.Parse au lieu de DateTime.ParseExact –

+0

Je reçois l'erreur disant que SQLDatetime n'existe pas dans ce contexte – user1270384

Répondre

1

Essayez

DateTime.ParseExact(dtm.Text.Trim(), "dd/M/yyyy", System.Globalization.CultureInfo.InvariantCulture) 

quatre ans au lieu de 3 et InvariantCulture

+0

Ce fut une erreur de frappe, des excuses. Avoir modifié mon code pour montrer la bonne façon. ça donne toujours une erreur. – user1270384

+0

@ user1270384: J'ai également édité ma réponse et ajouté 'CultureInfo.InvariantCulture' –

+0

pas de chance ... donne toujours la même erreur. Lorsque je souris en mode débogage lit comme dtm.text = {"18/5/2012"} – user1270384

Questions connexes