使用datetime.parseexact()时无法识别字符串

时间:2014-12-16 17:34:00

标签: c# asp.net sqlparameters

当我试图在sqlparameter中输入日期时,它仍然无法识别弹出字符串,我甚至尝试使用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()} 
   };

2 个答案:

答案 0 :(得分:0)

怀疑问题是服务器上安装的 culture ;自定义/说明符中的DateTime实际上并不代表/ - 它代表DateSeparator。如果您确实希望它使用/,最简单的方法是明确指定不变文化;尝试将nullParseExact)替换为CultureInfo.InvariantCulture。如果 仍然无法正常工作,那么我强烈怀疑传入的值不是12/12/2012 - 例如,它可能包含空格或unicode隐藏字符。< / p>

答案 1 :(得分:-1)

这是由于您使用的日期时间格式。这取决于您的SQL DB。尝试打印它而不进行精确搜索以查看格式。

相关问题