如何在 C# 中使用特定的 INNER JOIN 查询和条件制作 Crystal Report

Posted

技术标签:

【中文标题】如何在 C# 中使用特定的 INNER JOIN 查询和条件制作 Crystal Report【英文标题】:How make a Crystal Report with a specific INNER JOIN query and condition in C# 【发布时间】:2015-03-20 07:43:37 【问题描述】:

我的 Windows 窗体应用程序有问题。我的报告没有显示任何内容,我不知道问题是什么。我想使用 SQL Server 2008 中的特定查询创建一个报告并添加条件,但我只是编写没有条件的查询并且没有显示任何内容,我的数据库不是空的。

我有这个代码:

SqlConnection Conne = new SqlConnection("Data Source=GONZALO\\SQLEXPRESS;Initial Catalog=DATABASE;Integrated Security=true");
Conne.Open();   

ReportedeMant Informe2 = new ReportedeMant();
RMant rll2 = new RMant();

string query = "SELECT * FROM Mantenimientos M " +
                "INNER JOIN Canales C ON M.IDCanal=C.IDCanal " +
                "INNER JOIN Region R ON M.IDRegion=R.IDRegion " +
                "INNER JOIN Equipos E ON M.Serie = E.Serie " +
                "INNER JOIN Fallas F ON M.IDTipoFalla = F.IDTipoFalla " +
                "INNER JOIN Problema_Mantenimiento PM ON M.IDProblema = PM.IDProblema " +
                "INNER JOIN Resultado_Mant RM ON M.IDResultado = RM.IDResultado " +
                "INNER JOIN Servicio S ON M.IDServicio = S.IDServicio " +
                "INNER JOIN TipoMantenimiento TM ON M.IDTipoMant = TM.IDTipoMant " +
                "INNER JOIN Clientes Cli ON M.CodigoCliente = Cli.CodigoCliente";
               //    DatabaseDataSet dsLS = new DatabaseDataSet ();

DataSet dsLS = new DataSet();

SqlCommand com = new SqlCommand(query,Conne);

try

    SqlDataAdapter q = new SqlDataAdapter(com);
    q.Fill(dsLS);

    Informe2.SetDataSource(dsLS);
    rll2.crystalReportViewer1.ReportSource = Informe2;

catch (Exception eex)

    MessageBox.Show(eex.Message);


rll2.Show();

【问题讨论】:

【参考方案1】:

如果任何一个 INNER JOIN 没有返回任何记录,那么整个查询将不会返回任何记录。但是如果不知道数据关系和查询的意图,我无法判断什么是正确的做法。

作为一个猜测我会说 LEFT JOIN 至少是第一次加入。

无论您一次构建一个 JOIN 查询,在您的 sql 环境中运行它并在执行过程中查看结果。

Helpful Link 1

Helpful Link 2

【讨论】:

以上是关于如何在 C# 中使用特定的 INNER JOIN 查询和条件制作 Crystal Report的主要内容,如果未能解决你的问题,请参考以下文章

SQL 如何通过 INNER JOIN 更新 -

带有 SELECT 和 INNER JOIN 的 SQL INSERT INTO

带有 INNER JOIN 和 WHERE 的 SQL 查询

如何在 SQL Server 中使用 INNER JOIN 从多个表中删除

如何在Nodejs中使用Sequelize在没有公共列的两个表上进行INNER JOIN?

两个 INNER JOIN ODBC MSAccess 异常与查询