Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在MVC5中生成报告时,日期未正确绑定?_C#_Sql Server_Date_Asp.net Mvc 5_Crystal Reports - Fatal编程技术网

C# 在MVC5中生成报告时,日期未正确绑定?

C# 在MVC5中生成报告时,日期未正确绑定?,c#,sql-server,date,asp.net-mvc-5,crystal-reports,C#,Sql Server,Date,Asp.net Mvc 5,Crystal Reports,您好,我有一个视图名为每日访问报告。它包含两个名为FromDate和ToDate的字段。我将根据日期生成报告。我正在使用水晶报告2010。在正常的本地机器上,在web服务器上部署我的应用程序后,运行良好,它会显示空报告。我会解释清楚我的问题 我使用Web服务器在线上传我的应用程序。所以我从Godaddy购买了虚拟专用服务器。我通过购买的web服务器IP地址(从Godaddy)使用远程桌面连接在线上传我的应用程序 在我在web服务器中部署应用程序后生成报告时出现一个错误之前,下面提到了该错误 所

您好,我有一个视图名为每日访问报告。它包含两个名为FromDateToDate的字段。我将根据日期生成报告。我正在使用水晶报告2010。在正常的本地机器上,在web服务器上部署我的应用程序后,运行良好,它会显示空报告。我会解释清楚我的问题

我使用Web服务器在线上传我的应用程序。所以我从Godaddy购买了虚拟专用服务器。我通过购买的web服务器IP地址(从Godaddy)使用远程桌面连接在线上传我的应用程序

在我在web服务器中部署应用程序后生成报告时出现一个错误之前,下面提到了该错误

所以我问了很多论坛和谷歌搜索。他们中的许多人建议我在web服务器系统的汇编文件夹中添加CrystalDecision.ReportAppServer.CommLayer dll,并在web.config文件中引用它。我也这样做了。我再次在web服务器中部署我的应用程序,并尝试生成报告。这次它没有显示任何错误,也生成了空报告

问题是日期未正确绑定。我发送给控制器的日期格式为2016年3月1日Fromdate和Todate。但从数据库中检索的日期格式不同,例如2016年12月8日,它随时间而来。我在数据库中保存日期,但在检索时,它将随一个默认时间而来

因此,我使用以下命令将sql中的日期格式转换为字符串格式

Replace(Convert(varchar(50), vf.VisitingDate,6), ' ', '-')As VisitingDate
在检索时,我还将VisitingDate格式从字符串更改为日期。现在从数据库检索时的日期格式和fromdate和to date的格式都是一样的,我正常的本地机器运行得很好。但它在web服务器中部署后会显示空报告。有一件事是,如果我没有选择任何日期并单击“确定”按钮,则意味着它会在web服务器中显示报告中的所有数据(在表中)

我的控制器代码

 public ActionResult VisitSummaryReport()
    {
        return View();
    }

    [HttpPost]
    public ActionResult GetDates(VisitorsViewModel VisitorsVM)
    {
        var fromdt = Convert.ToString(string.Format("{0:dd/MMM/yy}", VisitorsVM.FromDate));
        var todt = Convert.ToString(string.Format("{0:dd/MMM/yy}", VisitorsVM.ToDate));
        SqlConnection connection = new SqlConnection(@"Data Source=S192-169-143-12\WAFEEXPRESS;Initial Catalog=CRM;User ID=sa;Password=Wafe@win;");
        //SqlConnection connection = new SqlConnection(@"Data Source=192.168.0.73\SQLEXPRESS,14330;Initial Catalog=CRM;User ID=sa;Password=wafewin;");
        DataTable dt = new DataTable();
        try
        {
            SqlCommand command = new SqlCommand();
            command.Parameters.Add("@fromDate", System.Data.SqlDbType.Date).Value = fromdt;
            command.Parameters.Add("@toDate", System.Data.SqlDbType.Date).Value = todt;
            command.CommandText = "Select * from  [View_VisitorsForm]  Where CAST(VisitingDate AS Date) >= @fromDate and  CAST(VisitingDate AS Date) <= @toDate";


            command.Connection = connection;
            connection.Open();
            SqlDataAdapter adp = new SqlDataAdapter(command);
            adp.Fill(dt);

        }
        catch (Exception ex)
        {
            throw;
        }
        ReportDocument rpt = new ReportDocument();
        rpt.Load(Server.MapPath("~/Areas/Sales/CrystalReports/rpt_VisitSummaryCrystalReport.rpt"));
        rpt.SetDataSource(dt);
        Stream stream = rpt.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
        return File(stream, "application/pdf");
    }
public ActionResult VisitSummaryReport()
{
返回视图();
}
[HttpPost]
公共行动结果获取日期(访问者查看模型访问者SVM)
{
var fromdt=Convert.ToString(string.Format(“{0:dd/MMM/yy}”,VisitorsVM.FromDate));
var todt=Convert.ToString(string.Format(“{0:dd/MMM/yy}”,VisitorsVM.ToDate));
SqlConnection连接=新SqlConnection(@“数据源=S192-169-143-12\WAFEEXPRESS;初始目录=CRM;用户ID=sa;密码=Wafe@win;");
//SqlConnection=newsqlconnection(@“数据源=192.168.0.73\SQLEXPRESS,14330;初始目录=CRM;用户ID=sa;密码=wafewin;”);
DataTable dt=新的DataTable();
尝试
{
SqlCommand=newsqlcommand();
command.Parameters.Add(“@fromDate”,System.Data.SqlDbType.Date).Value=fromdt;
command.Parameters.Add(“@toDate”,System.Data.SqlDbType.Date).Value=todt;

command.CommandText=“从[View_VisitorsForm]中选择*,其中强制转换(VisitingDate AS Date)>=@fromDate和强制转换(VisitingDate AS Date)尝试此操作,将此程序集添加到web配置中并检查 注意:请更改您使用的版本

<compilation debug="true" targetFramework="4.5">
  <assemblies>
    <add assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.ReportAppServer.Controllers, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.ReportAppServer.DataDefModel, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
  <add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/></assemblies>
</compilation>


你必须在你的web.config中添加程序集。查看你的本地web.config应该有程序集。你可以将它们添加到你上传的web.config中。我更新我的web.config文件。请检查并告诉我错过了要添加的引用,如果我没有选择任何日期,则忘记告诉一件事,单击“确定”按钮表示它显示了所有日期web服务器中报表中的数据
<compilation debug="true" targetFramework="4.5">
  <assemblies>
    <add assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.ReportAppServer.Controllers, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.ReportAppServer.DataDefModel, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
  <add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/></assemblies>
</compilation>