DataSet Не поддерживается Nullable - PullRequest
0 голосов
/ 30 апреля 2019

Я работаю над отчетом Crystal и получаю исключение «DataSet не поддерживается Nullable». Я искал его в Google и нашел много решений, но я до сих пор не понял, как преобразовать пустой столбец в ноль, используя тернарный оператор нуль-коалесцирующий оператор, в котором

ниже - мой код

          ReportDocument rd = new ReportDocument();
        // rd.Load(Path.Combine(Server.MapPath("~/Reports"), "CrystalReport.rpt"));
        rd.Load(Server.MapPath("~/Reports/CrystalReportForSingle.rpt"));
        rd.SetDatabaseLogon("sa", "786", @"NUMAN-PC", "DiaryManagementSystem");
        DiaryManagementSystemEntities1 db = new DiaryManagementSystemEntities1();
        // rd.SetDataSource(DataSetToList.ToDataSet(db.File_Movement.Where(x => x.file_Id == id).ToList()));

        rd.SetDataSource(db.File_Movement.Where(x => x.file_Id == id).ToList());
        Response.Buffer = false;
        Response.ClearContent();
        Response.ClearHeaders();

        try
        {

            Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
            stream.Seek(0, SeekOrigin.Begin);
            return File(stream, "application/pdf", "DiaryMovementList.pdf");

        }
        catch
        {

            throw;
        }

        return View();

    }

У меня есть несколько столбцов типа DateTime в моей Таблице, которые пусты и должны преобразовать нуль перед передачей в кристаллический отчет DataSet, но я не знаюкак конвертировать эти столбцы в методе, где предложение.

1 Ответ

0 голосов
/ 30 апреля 2019

Я не уверен, правильно ли я вас понимаю, но вы можете отправить их как формулу или как параметр.

Пример формулы:

var formula = "DATE({CreatedDate}) >= DATE('30.04.2019')";
rpt.RecordSelectionFormula = formula;

Пример параметра:

rpt.SetParameterValue("CreatedDate", "30.04.2019");
...