如何在 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的主要内容,如果未能解决你的问题,请参考以下文章
带有 SELECT 和 INNER JOIN 的 SQL INSERT INTO
带有 INNER JOIN 和 WHERE 的 SQL 查询
如何在 SQL Server 中使用 INNER JOIN 从多个表中删除