2012-04-11 1 views
0

Ich versuche, Datum und Uhrzeit in SQL Server zu speichern, aber bekomme Fehler.Was ist die Pblm mit dem folgenden C# -Code zum Speichern von Datum n Zeit in SQL Server?

private void button1_Click(object sender, EventArgs e) 
    { 
     string d = DateTime.Now.ToShortDateString(); 
     string t = DateTime.Now.ToShortTimeString(); 
     cmd.CommandText = "insert into transaction values("+label9.Text+",'"+d+"','"+t+"');"; 
     cmd.Connection = con; 
     con.Open(); 
     int x= cmd.ExecuteNonQuery(); 
     MessageBox.Show("Attendance recorded succesfully"); 
    }  

HINWEIS: Ich habe Datentyp als varchar für Datums- und Zeitfelder in SQL Server

+2

Bitte senden Sie die Fehlermeldung und die Codezeile, auf der sie auftritt. –

+0

Fehler: Falsche Syntax in der Nähe des Schlüsselwortes 'Transaktion'. In Zeile 8 in diesem Code ... –

+0

Post die Abfrage, die in cmd.commandText während der Fehlersuche – Virus

Antwort

0

Verwendung [Transaktion] statt Transaktion

+0

und auch Schema für Best Practices – devarc

0
private void button1_Click(object sender, EventArgs e) 
    { 
     string timeString = "11/12/2009 13:30:00.000"; 
     IFormatProvider culture = new CultureInfo("en-US", true); 
     DateTime dateVal = DateTime.ParseExact(timeString, "dd/MM/yyyy HH:mm:ss.fff", culture); 
     cmd.CommandText = "insert into transaction values(" + label9.Text + ",'" + dateVal + "');"; 
     cmd.Connection = con; 
     con.Open(); 
     int x = cmd.ExecuteNonQuery(); 
     MessageBox.Show("Attendance recorded successfully"); 
    } 
0
private void button1_Click(object sender, EventArgs e) 
    { 
     string d = DateTime.Now.ToString("dd/MM/yyyy"); 
     string t = DateTime.Now.ToString("hh:mm:ss tt"); 
     cmd.CommandText = "insert into transaction values("+label9.Text+",'"+d+"','"+t+"');"; 
     cmd.Connection = con; 
     con.Open(); 
     int x= cmd.ExecuteNonQuery(); 
     MessageBox.Show("Attendance recorded succesfully"); 
    }  

Zweitens können Sie auch versuchen Verwenden der SQL-GetDate() -Funktion, um Datum und Uhrzeit ohne Fehler einzufügen.

Nur Datumsteil, Sie haben:

SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) 

Vorteile für Datumsteil:

  • No varchar < -> Datetime-Konvertierungen erforderlich

  • keine Notwendigkeit, über locale zu denken

Teil

Zeit:

SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100), 7)) 

ich glücklich sein würde, wenn jemand helfen könnte TimePart bekommen w/o Konvertieren und Locale verwenden.

Verwandte Themen