C# Timespan输入字符串的格式不正确
我正在用Asp.Net(Framework4.0)做一个网站,使用SQLServer2008R2 我的数据库字段名“RegisterTime”和数据类型为时间(7) 在插入数据库时,我使用了C# Timespan输入字符串的格式不正确,c#,asp.net,sql-server-2008-r2,C#,Asp.net,Sql Server 2008 R2,我正在用Asp.Net(Framework4.0)做一个网站,使用SQLServer2008R2 我的数据库字段名“RegisterTime”和数据类型为时间(7) 在插入数据库时,我使用了TimeSpan time=DateTime.Now.TimeOfDay它插入成功 当我试图使用时间作为输入方法检索我的id时,它会给出错误信息,输入字符串的格式不正确 代码如下 cmd = new SqlCommand("SELECT OrderId FROM tbl_Orders WHERE Use
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时代码>
出错
你应该像这样试一下
CultureInfo ci = CultureInfo.InvariantCulture;
"' And RegisterTime='" + time.ToString("hh:mm:ss.ff",ci) + "'", con);
对于.NET4.0,有一种方法可以恢复TimeSpan的旧行为
在.NET3.5及更早版本中,TimeSpan
结构不是IFormattable
。当string.Format
和相关方法看到类似{0:something}
的内容,并且提供的参数不是IFormattable
时,它们无处放置该格式字符串,只需丢弃它。试试这个
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")
希望有帮助。您的代码给出错误“用户代码未处理格式异常”。输入字符串的格式不正确。请查看链接以解决问题。我仔细查看了您提供的链接。我已经根据链接进行了更改,但仍然给出了错误。