簡體   English   中英

“無法將字符串識別為有效的DateTime。”

[英]“String was not recognized as a valid DateTime.”

很抱歉繼續發布有關同一問題的信息。 我還是這種語言的新手。 所以這是我的問題。 每當我多次更改代碼時,我都會一直收到此錯誤。 所以這是我的代碼

<tr>
<td style="width: 160px">
<asp:Label ID="Label2" runat="server">tarikh mula (mm/dd/yy) :</asp:Label>
</td>
<td>
<asp:TextBox ID="txtDate" runat="server" ReadOnly="true"></asp:TextBox>
<cc1:CalendarExtender ID="CalendarExtender1" TargetControlID="txtDate" runat="server">
</cc1:CalendarExtender> 
</td>
</tr>

這是我的代碼背后

Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As      System.EventArgs) Handles btnSubmit.Click
    Dim thisConnection As New SqlConnection(ConfigurationManager.ConnectionStrings("SecurityTutorialsConnectionString").ConnectionString)

    'Create Command object
    Dim nonqueryCommand As SqlCommand = thisConnection.CreateCommand()

    Try
        ' Open Connection
        thisConnection.Open()

        ' Create INSERT statement with named parameters
        nonqueryCommand.CommandText = "INSERT  INTO QuotationBG (TajukSebutHarga, NoRujukan, TarikhMula) VALUES (@TajukSebutHarga, @NoRujukan, @TarikhMula)"

        ' Add Parameters to Command Parameters collection
        nonqueryCommand.Parameters.Add("@TajukSebutHarga", SqlDbType.VarChar, 255)
        nonqueryCommand.Parameters.Add("@NoRujukan", SqlDbType.VarChar, 255)
        nonqueryCommand.Parameters.Add("@TarikhMula", SqlDbType.Date).Value = DateTime.Parse(txtDate.Text)

        nonqueryCommand.Parameters("@TajukSebutHarga").Value = txtTS.Text
        nonqueryCommand.Parameters("@NoRujukan").Value = txtNo1.Text + txtNo2.Text + txtNo3.Text + txtNo4.Text
        nonqueryCommand.ExecuteNonQuery()
    Finally
        ' Close Connection
        thisConnection.Close()
    End Try 
End Sub

如下更改服務器端代碼。

Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
    Dim thisConnection As New  SqlConnection(ConfigurationManager.ConnectionStrings("SecurityTutorialsConnectionString").ConnectionString)

    'Create Command object
    Dim nonqueryCommand As SqlCommand = thisConnection.CreateCommand()
    Dim result as Date

    Try
        ' Open Connection
        thisConnection.Open()

        nonqueryCommand.CommandText = _
                    "INSERT  INTO QuotationBG (TajukSebutHarga, NoRujukan, TarikhMula) VALUES (@TajukSebutHarga, @NoRujukan, @TarikhMula)"

        ' Add Parameters to Command Parameters collection
        nonqueryCommand.Parameters.Add("@TajukSebutHarga", SqlDbType.VarChar, 255)
        nonqueryCommand.Parameters.Add("@NoRujukan", SqlDbType.VarChar, 255)

        nonqueryCommand.Parameters("@TajukSebutHarga").Value = txtTS.Text
        nonqueryCommand.Parameters("@NoRujukan").Value = txtNo1.Text + txtNo2.Text + txtNo3.Text + txtNo4.Text


        If DateTime.TryParseExact(Me.txtDate.Text, "M'/'d'/'yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, result) Then

            nonqueryCommand.Parameters.Add("@TarikhMula", SqlDbType.Date).Value =  result

        else

            nonqueryCommand.Parameters.Add("@TarikhMula", SqlDbType.VarChar).Value =  string.empty

        End If
        nonqueryCommand.ExecuteNonQuery()
    Finally
        ' Close Connection
        thisConnection.Close()
    End Try
End Sub

並將您的aspx更改為。

<asp:TextBox ID="txtDate" runat="server"></asp:TextBox>

正如您提到的,日期格式為(mm / dd / yy),因此您可以簡單地致電

Convert.ToDateTime(txtDate.Text)

嘗試,

DateTime? dt=null;

DateTime.TryParse(txtDate.Text,out dt)

if(dt!=null)
{
nonqueryCommand.Parameters.Add("@TarikhMula", SqlDbType.Date).Value =dt;
}
else
{
nonqueryCommand.Parameters.Add("@TarikhMula", SqlDbType.DBNull).Value = null;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM