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();
}
我建议先在工作数据库中运行查询,然后将其粘贴到项目中或粘贴到命令中(水晶报告向导)。它将解决您的问题。
像这个示例查询:
从中选择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()