簡體   English   中英

Timespan輸入字符串的格式不正確

[英]Timespan Input string was not in a correct format

我正在使用SQL Server 2008 r2在Asp.Net(Framework 4.0)中建立一個網站。

我的數據庫fieldname“RegisterTime”和數據類型是time(7)。

插入數據庫時​​,我使用TimeSpan time= DateTime.Now.TimeOfDay; 它插入成功。

在此輸入圖像描述

當我嘗試使用時間作為輸入方法檢索我的id時,它會給錯誤輸入字符串格式不正確。

代碼如下。

 cmd = new SqlCommand("SELECT OrderId  FROM tbl_Orders WHERE UserId ='" + Convert.ToInt32(Session["UserId"].ToString()) + "' And RegisterTime='" + time.ToString(@"hh\:mm\:ss.ff") + "'", con);
 con.Open();
 dr = cmd.ExecuteReader();
 if (dr.HasRows)
 {
    orderid = ""; 
    orderid = dr["OrderId"].ToString();
 }

在添加CultureInfo ci = CultureInfo.InvariantCulture; 給出錯誤

在此輸入圖像描述

試試這個!

cmd = new SqlCommand("SELECT OrderId  FROM tbl_Orders WHERE UserId ='" + Convert.ToInt32(Session["UserId"].ToString()) + "' And RegisterTime='" + time.ToString(@"hh\:mm\:ss\.ff") + "'", con);

在你的代碼中,有一個拼寫錯誤,

time.ToString(@"hh\:mm\:ss.ff") to time.ToString(@"hh\:mm\:ss\.ff")

希望能幫助到你。

你應該這樣試試

CultureInfo ci = CultureInfo.InvariantCulture;
"' And RegisterTime='" + time.ToString("hh:mm:ss.ff",ci) + "'", con);

for .Net 4.0有一個配置開關可以恢復TimeSpan的舊行為。

在.NET 3.5及更早版本中, TimeSpan結構不是IFormattable string.Format和相關方法看到像{0:something}類的{0:something}並且提供的參數不是IFormattable ,它們無處放置該格式字符串,它們只是丟棄它。

暫無
暫無

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

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