2011-09-27 7 views
1

En utilisant VB.NetComment convertir chaîne en datetime

Lorsque je clique sur la colonne GridView, que les éléments de colonne sélectionnés doivent apparaître dans le sélecteur de datetime

valeur GridView colonne est une chaîne, sélecteur de datetime type de données est datetime

code

Private Sub gridview1_CellContentDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles gridview1.CellContentDoubleClick 
     Dim i As Integer 
     i = gridview1.CurrentRow.Index 
     Dim dt As String = gridview1.Item(1, i).Value 
     datetimepicker1.value = CDate(dt) 
End Sub 

Lorsque je clique sur la colonne GridView, il affiche l'erreur « conversion de chaîne "25/09/2011" taper 'date' est n ot valide »

Comment résoudre le problème ci-dessus

Besoin d'aide VB.Net code ....

Répondre

1

Si vous connaissez le format de date à attendre à l'avance, utilisez DateTime.ParseExact, par exemple:

datetimepicker1.Value = DateTime.ParseExact(dt, "dd/MM/yyyy", CultureInfo.InvariantCulture) 
+0

Cela fonctionne, merci .... – Gopal

2

Ce problème est lié aux paramètres régionaux en ce que la fonction CDATE() attend des valeurs de date à fournir dans le format suivant: MM/JJ/AAAA (MM = mois, JJ = jour, AAAA = année). Cela signifie que le code échoue au Royaume-Uni, qui est JJ/MM/AAAA. Passant 25/09/2011 est traduit à:

  • mois = 25
  • jour = 09
  • Année = 2011

Si la valeur que vous utilisez est une chaîne que vous besoin d'analyser la valeur de chaîne pour extraire les valeurs correctes avant de le passer à la fonction CDate():

Private Sub gridview1_CellContentDoubleClick(ByVal sender As System.Object, _ 
    ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _ 
    Handles holidaygrid.CellContentDoubleClick 

    textbox1.Text = DateTime.ParseExact(_ 
     gridview1.Item(1, gridview1.CurrentRow.Index).Value, _ 
      "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString() 

End Sub