基本上我在修复“日期”以及如何在SQL中保存时遇到问题。它现在工作,它插入表等,但不是我想要插入的格式。它插入为MM/dd/yyyy
(就我所知的美式方式而言)但我需要按照我们在英国使用的格式进行插入,所以是的,它需要显示为dd/MM/yyyy
(03 / 05/2014)。
实际上是否可以将其转换为我的不同时区&如果是这样,它是如何完成的? (完成后我的意思是指导我,否则我不会学习。)
这是我的代码,介绍了如何将插入包含到实际的SQL数据库中。
Protected Sub OkBtn_Click(sender As Object, e As System.EventArgs) Handles OkBtn.Click
Try
' Dim DayNo As Integer = 0
' Dim DateNo As Integer = 0
' Dim StartingDay As Integer = 0
Dim ThisDay As Date = Date.Today
' Dim Week As Integer = 1
' StartingDay = ThisDay.AddDays(-(ThisDay.Day - 1)).DayOfWeek
' DayNo = ThisDay.DayOfWeek
' DateNo = ThisDay.Day
' Week = Fix(DateNo / 7)
' If DateNo Mod 7 > 0 Then
'Week += 1
' End If
' If StartingDay > DayNo Then
'Week += 1
' End If
'Dim ThisWeek As String
' ThisWeek = Week
Dim ThisUser As String
ThisUser = Request.QueryString("")
If ThisUser = "" Then
ThisUser = "Chris Heywood"
End If
connection.Open()
command = New SqlCommand("Insert Into FireTest([Date],[Type],[Comments],[Completed By]) Values(@Date,@Type,@Comments,@CompletedBy)", connection)
command.Parameters.AddWithValue("@Date", ThisDay.ToString)
command.Parameters.AddWithValue("@Type", DropDownList1.SelectedValue)
command.Parameters.AddWithValue("@Comments", TextBox2.Text)
command.Parameters.AddWithValue("@CompletedBy", ThisUser)
'command.Parameters.AddWithValue("@Week", ThisWeek)
command.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show("Please make sure all fields are filled in!")
End Try
connection.Close()
Response.Redirect("~/Production/Navigator.aspx")
End Sub
编辑:我编辑了它插入的方式&虽然有效但仍然没有显示为dd / MM / yyyy。
答案 0 :(得分:4)
由于您的数据库列是date
类型,因此在添加参数时删除.ToString
调用:
command.Parameters.AddWithValue("@Date", ThisDay)
答案 1 :(得分:2)
command.Parameters.AddWithValue("@Date", ThisDay)
您不需要致电tostring
但在这种情况下我甚至不会使用参数。我会让db插入日期
Insert Into FireTest([Date],[Type],[Comments],[Completed By]) Values(GETDATE(),@Type,@Comments,@CompletedBy)
答案 2 :(得分:1)
可以尝试Date.Today.ToShortDateString
。
我使用它的另一种方法Date.Today.ToString("dd/MM/yyyy")
尝试一下,然后再回到我身边。
编辑:
试试这个:
Dim culture As New CultureInfo("fr-FR")
Date.Today.ToString("dd/MM/yyyy", culture)
答案 3 :(得分:1)
使用AddWithValue
时,添加值的类型应反映DB中的列类型。只需将您的代码更改为:
command.Parameters.AddWithValue("@Date", Date.Today)