当我试图在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()}
};
答案 0 :(得分:0)
我怀疑问题是服务器上安装的 culture ;自定义/
说明符中的DateTime
实际上并不代表/
- 它代表DateSeparator
。如果您确实希望它使用/
,最简单的方法是明确指定不变文化;尝试将null
(ParseExact
)替换为CultureInfo.InvariantCulture
。如果 仍然无法正常工作,那么我强烈怀疑传入的值不是12/12/2012
- 例如,它可能包含空格或unicode隐藏字符。< / p>
答案 1 :(得分:-1)
这是由于您使用的日期时间格式。这取决于您的SQL DB。尝试打印它而不进行精确搜索以查看格式。