如何解决日期格式错误 [英] how to tackle with date format error

查看:136
本文介绍了如何解决日期格式错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从字符串转换日期和/或时间时转换失败。显示此错误。怎么办



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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆