簡體   English   中英

SQL Server的DateTime轉換錯誤asp.net

[英]DateTime Conversion Error asp.net with sql server

<asp:TextBox ID="txtBox" runat="server">
</asp:TextBox>
<asp:CalendarExtender ID="ce" runat="server" TargetControlID="txtBox" Format="dd-MMM-yyyy">
</asp:CalendarExtender>

using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection239"].ToString()))
{
    SqlCommand cmd = new SqlCommand("insert into tbl_testing(dttm) values('"+DateTime.Parse(txtBox.Text)+"')", con);
    con.Open();
    cmd.ExecuteNonQuery();
}

當我執行以下錯誤時。 我應該以哪種格式將日期發送到SQL Server

從char數據類型到datetime數據類型的轉換導致超出范圍的datetime值。 該語句已終止。 提前致謝

在查詢中使用參數,而不是字符串連接。 不僅您的日期時間問題將消失,而且您的查詢也將不易受到sql注入的攻擊。

除此之外,您還可以使用DateTimePicker代替文本框,對嗎?

var command = conn.CreateCommand();
command.CommandText = "insert into tbl_testing(thecol) values(@p_someDate)";
command.Parameters.Add ("@p_someDate", SqlDbType.DateTime).Value = datetimePicker.Value;
command.ExecuteNonQuery();

請使用以下代碼:

        SqlCommand cmd = new SqlCommand("insert into tbl_testing(dttm) values(@dttm)", con);
        cmd.Parameters.AddWithValue("@dttm", DateTime.Parse(txtBox.Text));
        con.Open();
        cmd.ExecuteNonQuery(); 

只需通過SqlParameter傳遞值,就永遠不要使用字符串連接。

mm-dd-yyyyThh:mm:ss

確保服務器(本地或其他)使用正確的時間。 例如,如果它是英國或美國。 日期也包裹在“”中。 看來您將其包裝在“”中?

暫無
暫無

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

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