SQL Server - C# WinForm - Crystal 报表未显示内部联接查询的正确结果

本文关键字:查询 结果 内部 显示 Server WinForm Crystal 报表 SQL | 更新日期: 2023-09-27 17:56:56

我正在尝试在水晶报表查看器中执行我的内部联接查询。从 SQL Server 中的"新建查询"部分运行时,查询将起作用。

SELECT TABLE1.column1,TABLE2.column1
FROM TABLE2 INNER JOIN TABLE1 ON TABLE2.Identifier=TABLE1.Identifier
WHERE DateFrom='1/1/2016' AND DateTo='1/1/2017'

但是当我将代码放入报表中时,相比之下,结果是不正确的。为什么从报表运行此 SQL 时结果会有所不同?

DBConnection dbcon = new DBConnection();
cystalreportName crn = new cystalreportName();
private void Form1_Load(object sender, EventArgs e)
{
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = dbcon.getcon();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "..."; // the inner join query the I used.
    SqlDataAdapter da = new SqlDataAdapter();
    da.SelectCommand = cmd;
    DataSet ds = new DataSet();
    da.Fill(ds, "TABLE2");
    crn.SetDataSource(ds.Tables["TABLE2"]);
    crystalreportviewer.ReportSource = crn;
    crystalreportviewer.Refresh();
}

SQL Server - C# WinForm - Crystal 报表未显示内部联接查询的正确结果

我建议先在工作数据库中运行查询,然后将其粘贴到项目中或粘贴到命令中(水晶报告向导)。它将解决您的问题。

像这个示例查询:

   从中选择a.user_id,a.user_name,B.描述    (从用户中选择 user_id,user_name)作为    左联接    (选择user_id,从项目中描述)作为b    在a.user_id = b.user_id或者你可以让它成为存储过程:    创建过程 proc_sample()    开始       从中选择a.user_id,a.user_name,B.说明       (从用户中选择 user_id,user_name)作为       左联接       (选择user_id,从项目中描述)作为b       在a.user_id = b.user_id;    结束调用过程:    在项目中或在 Crystal 报告命令中调用 proc_sample()