如何解决日期格式错误 [英] how to tackle with date format error
本文介绍了如何解决日期格式错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
从字符串转换日期和/或时间时转换失败。显示此错误。怎么办
aspx.cs代码:
Conversion failed when converting date and/or time from character string. This error is displayed.What to do
aspx.cs code :
protected void btnGenerateReport_Click(object sender, EventArgs e)
{
Label1.Visible = false;
SqlCommand sc = new SqlCommand("GenerateReport", mycode.cn);
sc.CommandType = CommandType.StoredProcedure;
mycode.open();
sc.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = sc;
SqlCommandBuilder cm = new SqlCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds, "tblPersonalDetails");
if (ds.Tables["tblPersonalDetails"].Rows.Count > 0)
{
GridView1.DataSource = ds.Tables["tblPersonalDetails"];
GridView1.DataBind();
GridView1.Visible = true;
}
else
{
Label1.Visible = true;
Label1.Text = "Record Not found ";
GridView1.Visible = false;
}
}
aspx代码:
aspx code :
<asp:Label ID="lblStartDate" runat="server" Text="Start Date : ">
<asp:TextBox ID="startDate" runat="server">
<asp:Label ID="lblEndDate" runat="server" Text="End Date : ">
<asp:TextBox ID="endDate" runat="server">
<asp:Button ID="btnGenerateReport" runat="server" Text="Generate Report"
onclick="btnGenerateReport_Click" BackColor="#66CCFF" ForeColor="White" /><asp:Label ID="Label1" runat="server" Text="">
<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
<asp:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="startDate" Format="MM/dd/yyyy">
<asp:CalendarExtender ID="CalendarExtender2" runat="server" TargetControlID="endDate" Format="MM/dd/yyyy">
存储过程:
stored procedure :
USE [HRRecruitment]
GO
/****** Object: StoredProcedure [dbo].[GenerateReport] Script Date: 03/18/2015 10:52:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[GenerateReport]
as
begin
SELECT CONVERT(VARCHAR(10), SYSDATETIME(), 101) AS [MM/DD/YYYY]
select * from tblPersonalDetails Inner Join tblFamilyDetails
on tblPersonalDetails.Email=tblFamilyDetails.Email Inner Join tblImageDetails
on tblPersonalDetails.Email=tblImageDetails.Email Inner Join tblEducationalDetails
on tblPersonalDetails.Email=tblEducationalDetails.Email Inner Join tblAcademicDetails
on tblPersonalDetails.Email=tblAcademicDetails.Email Left Join tblWorkExpDetails
on tblPersonalDetails.Email=tblWorkExpDetails.Email Left Join tblReferenceDetails
on tblPersonalDetails.Email=tblReferenceDetails.Email Left Join tblDeclarationDetails
on tblPersonalDetails.Email=tblPersonalDetails.Email where
tblPersonalDetails.JoinDate Between '" + startDate.Text + "' and '" + endDate.Text + "'
end;
推荐答案
您的存储过程应该是这样的:
Your Stored Procedure should be something like this:
USE [HRRecruitment]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[GenerateReport]
@StartDate DATE,
@EndDate DATE
as
begin
select * from tblPersonalDetails Inner Join tblFamilyDetails
on tblPersonalDetails.Email=tblFamilyDetails.Email Inner Join tblImageDetails
on tblPersonalDetails.Email=tblImageDetails.Email Inner Join tblEducationalDetails
on tblPersonalDetails.Email=tblEducationalDetails.Email Inner Join tblAcademicDetails
on tblPersonalDetails.Email=tblAcademicDetails.Email Left Join tblWorkExpDetails
on tblPersonalDetails.Email=tblWorkExpDetails.Email Left Join tblReferenceDetails
on tblPersonalDetails.Email=tblReferenceDetails.Email Left Join tblDeclarationDetails
on tblPersonalDetails.Email=tblPersonalDetails.Email where
tblPersonalDetails.JoinDate Between @StartDate and @EndDate
end
并将两个日期作为参数添加到您的SqlCommand:使用
sc.Parameters.Add()
And also add the two dates as the parameters to your SqlCommand: using
sc.Parameters.Add()
这篇关于如何解决日期格式错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文