当我使用 datetime.parseexact() 时无法识别字符串
本文关键字:识别 字符串 datetime parseexact | 更新日期: 2023-09-27 18:34:26
当我尝试在sql参数中输入日期时,它不断弹出无法识别的字符串,我什至尝试使用ParseExact()
但它仍然显示错误。
我的.aspx :
<asp:TextBox ID="txtfromdate" runat="server" Width="90px" Height="20px">
</asp:TextBox>
<cc1:CalendarExtender ID="calender1" runat="server"
TargetControlID="txtfromdate"
Format="dd/MM/yyyy">
aspx.cs :
SqlParameter[] prm = {
new SqlParameter("@ContractName",SqlDbType.NVarChar){Value=txtContractname.Text.Trim()},
new SqlParameter("@FromDate",DateTime.ParseExact(txtfromdate.Text,"dd/MM/yyyy",null)),
new SqlParameter("@ToDate",DateTime.ParseExact(txtToDate.Text,"dd/MM/yyyy",null)) ,
new SqlParameter("@VenID",SqlDbType.Int){Value=Convert.ToInt32(ddlsupplier.SelectedValue)} ,
new SqlParameter("@CreatedBy",SqlDbType.Int){Value=Convert.ToInt32(Session["UserID"])}, //chng
new SqlParameter("@OrgID",SqlDbType.Int){Value=Convert.ToInt32(Session["orgID"])},
new SqlParameter("@Termsnconditions",SqlDbType.NVarChar){Value=txtTermsandconditions.Text} ,
new SqlParameter("@Module",SqlDbType.NVarChar){Value=ddlModule.SelectedValue} ,
new SqlParameter("@Filename",SqlDbType.NVarChar){Value=ddlAttachment.SelectedValue} ,
new SqlParameter("@Currency",SqlDbType.NVarChar){Value=ddlCurrency.SelectedItem.Text} ,
new SqlParameter("@ContractNumber",SqlDbType.NVarChar){Value =txtContractNumber.Text.Trim()}
};
我怀疑问题是服务器上安装的文化; 自定义DateTime
说明符中的/
实际上并不代表/
- 它表示DateSeparator
。如果您实际上希望它使用 /
,最简单的方法是显式指定固定区域性;尝试简单地将null
(ParseExact
(替换为 CultureInfo.InvariantCulture
。如果这仍然不起作用,那么我强烈怀疑传入的值不是很12/12/2012
- 例如,它可能包含空格或 unicode 隐藏字符。
这是由于您使用的 datrtime 前垫。这取决于您的 SQL 数据库。尝试打印它而不进行精确搜索以查看格式。