Wenn Sie ein Datum in den ms-sql-Server einfügen, wenden Sie ein beliebiges der beiden Konzepte an.
Die grundlegende Lösung besteht darin, dass Sie das Datum entweder im Format mm/TT/JJJJ oder im Datumsformat JJJJ-MM-TT in die Abfrage ms-sql eingeben müssen.
Bevor Sie also das Datum zur Abfrage übergeben, konvertieren Sie das Datum entweder in das Format MM/TT/JJJJ oder in das Format JJJJ-MM-TT.
Um das Datum vom benutzerdefinierten Format in m/D/yyyy zu konvertieren, können Sie folgende Funktion verwenden.
Imports System.Globalization
Public Function GetMDYFrmCustDt(ByVal CustDate As String) As String
Dim tmp As Date = DateTime.ParseExact(CustDate, "dd/MM/yyyy", DateTimeFormatInfo.CurrentInfo)
GetMDYFrmCustDt = GetMDYFrmSysDt(tmp)
End Function
Public Function GetMDYFrmSysDt(ByVal SysDate As Date) As String
Try
GetMDYFrmSysDt = SysDate.ToString("MM/dd/yyyy")
Catch ex As Exception
GetMDYFrmSysDt = SysDate.ToString("MM-dd-yyyy")
End Try
End Function
So müssen Sie
folgenden Code verwenden
Try
Dim cmd As SqlCommand
Dim Query As String = "Insert into test(name,date,d1,d2,d3)values(@name,Getdate(),@d1,@d2,@d3)"
'Convert Function used to insert date in dd/MM/yyyy format'
cmd = New SqlCommand(Query, con)
con.Open()
cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = TextBox1.Text
cmd.Parameters.Add("@d1", SqlDbType.DateTime).Value = GetMDYFrmCustDt(TextBox2.Text)
cmd.Parameters.Add("@d2", SqlDbType.DateTime).Value = GetMDYFrmCustDt(TextBox3.Text)
cmd.Parameters.Add("@d3", SqlDbType.DateTime).Value = GetMDYFrmCustDt(TextBox4.Text)
cmd.ExecuteNonQuery()
con.Close()
lblvalid.Visible = True
lblvalid.Text = "Record is inserted successfully"
Catch ex As Exception
lblvalid.Text = (ex.Message)
End Try
Statt Code Sie folgenden Code verwenden können, das gleiche Funktionalität ohne Fehler liefert
Try
Dim ds As New DataSet
Dim Query As String = "Insert into test(name,date,d1,d2,d3)values('" & TextBox1.Text & "',Getdate(),'" & GetMDYFrmCustDt(TextBox2.Text) & "','" & GetMDYFrmCustDt(TextBox3.Text) & "','" & GetMDYFrmCustDt(TextBox4.Text) & "')"
Dim da As New SqlDataAdapter(qry, con)
da.Fill(ds)
lblvalid.Visible = True
lblvalid.Text = "Record is inserted successfully"
Catch ex As Exception
lblvalid.Text = (ex.Message)
End Try
irgendwann der Code funktioniert und Daten stored.But manchmal gibt es error.This die error-- ist Die Konvertierung eines char-Datentyps in einen datetime-Datentyp führte zu einem out-of-range-datetime-Wert. Die Aussage wurde beendet. Sagen Sie mir bitte, wo ich falsch liege. Bitte helfen Sie mir mit dem Code. – mrinal
Sind Sie sicher, dass das Datum immer gültig ist? Kannst du deine tatsächlichen Datumswerte setzen, die den Fehler werfen? –
Ich füge Daten im TT/MM/JJJJ-Format ein.eg.29/12/2016. Es zeigt Fehler wie oben.wie konvertiere ich Datetime in TT/MM/JJJJ Form beim Einfügen von Daten in Textbox. – mrinal