2016-05-23 22 views
0

jemand helfen mir mit dem Problem, dass jedes Mal, wenn ich Daten speichern oder aktualisieren das Datum funktioniert gut, aber die Zeit ist immer 12:00 Uhr. Die Zeit sollte der Zeitpunkt sein, an dem ich die Daten eingabe und in der Datenbank gespeichert werde.Datum und Uhrzeit in Datagridview

dies ist mein Code für das Update

 Dim i As Short 
    con.Open() 
    Using com As New SqlClient.SqlCommand("UPDATE Information set FiveS_Date = '" & DateTimePicker1.Text & "',FiveS_Score = '" & TextBox2.Text & "',FiveS_Total = '" & TextBox3.Text & "' ,FiveS_Percentage = '" & TextBox4.Text & "' WHERE Id='" & id & "'", con) 
     i = com.ExecuteNonQuery() 
    End Using 
    con.Close() 
    If (i > 0) Then 


     MsgBox("Training updated successfully", MsgBoxStyle.Information) 
    End If 

bitte helfen.

Antwort

0

Versuchen Sie, DateTimePicker1.Text zu DateTimePicker1.Value.ToString

.Text nur zurück, was sichtbar ist (nur Datum), während .Value gibt die aktuelle Zeit sowie das angezeigte Datum.

+3

Wenn Sie den datetime-Wert auf string ausgeben, werden nur andere Probleme verursacht. Warum verwenden Sie nicht einfach Datetime-Typen in Datenbank und Code? –

+0

@AlexB. Danke für Ihren Kommentar, ich war etwas faul die Frage nach dem 12:00 Zeitstempel zu beantworten, ohne auf das größere Problem einzugehen. – OSKM

0

Um Zeit in die Datenbank einfügen Sie

DateTimePicker1.Value 

statt

DateTimePicker1.Text 
+3

'Aber .value liefert das Datum im Systemformat' - Nein. Wert gibt den Datetime-Wert ohne Format an, da ** Datumsangaben kein Format haben! **. Beim Umgang mit Datenbanken und Daten sollte man immer Datetime-Typen anstelle von String Casting Horrors verwenden. –

+0

Also, Alex, was genau fragst du? – Ravi

+1

@AlexB. sagt, dass 'Sie Datum entweder in ... Datumformat in ms-sql-Abfrage angeben müssen 'ist falsch. Die einzige Möglichkeit, sich über ein Format Gedanken zu machen, ist das Konvertieren in eine Zeichenfolge. Die NET dbProvider können eine DateTime vollständig akzeptieren und in der Datenbank speichern. – Plutonix

1

Sie sollten Parameter verwenden, um das Problem der Datenumwandlung zu vermeiden, wenn Sie ADO.NET verwenden verwenden müssen. Dies hilft Ihnen auch bei unterschiedlichen Kulturen in Ihrer Anwendung.

Wie auch immer, DateTimePicker1.Value gibt Ihnen auch die Zeit, aber wenn Sie ein Datum wählen, das sich vom Standardwert von DateTimePicker (was jetzt ist) unterscheidet, dann gibt Ihnen DateTimePicker immer die Zeit "12:00". Sie müssen es formatieren, um auch die Zeit anzuzeigen und die Möglichkeit zu haben, sie einzustellen (Beispiel "MM/TT/JJJJ HH: mm").

0

Versuchen Sie folgendes:

FiveS_Date ='" + DateTime.Parse(datetxt.Text).ToString("dd/MM/yyy") +"' 
0

Für den Anfang DateTimePicker1.Text werden Sie nur den String geben, die standardmäßig in der Datetimepicker, angezeigt wird das DateTimePickers Format wird nur das Datum und die standardmäßig wird die Zeit 12 sein : 00 Uhr. Sie können das DateTimePicker-Format ändern, um Zeit anzuzeigen, indem Sie das Feld Format in dem Eigenschaftsfenster des DateTimePicker in Zeit ändern. DateTimePicker to Time format

Oder von Ihrem Satz wollen Sie das Datum mit der Zeit, die Sie in die Datenbank die Daten gespeichert kombiniert ausgewählt speichern, stellen nur eine neue Datetime-Variable und die Datetime Daten als Werte dieser Variablen einfügen und die Zeit von Datetime .Now() - Funktion, die das aktuelle Datum und die aktuelle Uhrzeit zurückgibt.

Dim now As DateTime = DateTime.Now() 
Dim myDate = new DateTime(DateTimePicker1.Value.Year, DateTimePicker1.Value.Month, DateTimePicker1.Value.Day, now.Hour, now.Minute, now.Second, now.Millisecond)