C# 动态SQL行和列…单元格需要后续查询。最佳方法?
我有以下表格C# 动态SQL行和列…单元格需要后续查询。最佳方法?,c#,sql,stored-procedures,C#,Sql,Stored Procedures,我有以下表格 City --------- CityID StateID Name Description Reports --------- ReportID HeaderID FooterID Description 我正在尝试生成一个网格,用于.Net控件的Gridview、Listview……另外一个问题是,对于我来说,哪一个是“最好”的网格,它将报告分配为列,城市分配为行 显示哪些城市取决于所选的州,这很简单 SELECT * FROM CITIES WHERE STATEID=@
City
---------
CityID
StateID
Name
Description
Reports
---------
ReportID
HeaderID
FooterID
Description
我正在尝试生成一个网格,用于.Net控件的Gridview、Listview……另外一个问题是,对于我来说,哪一个是“最好”的网格,它将报告分配为列,城市分配为行
显示哪些城市取决于所选的州,这很简单
SELECT * FROM CITIES WHERE STATEID=@StateID
但是,用户可以选择为每个城市的人口统计、销售、土地面积等生成哪些报告
此外,结果单元格City*报告是基于所选城市和报告的不同表上的子查询
即:列销售选定收益率
SELECT * FROM SALES WHERE CITYID=@CityID
我已经编写了一个非常不雅观的解决方案,使用多个查询和蛮力强制网格逐行创建,逐行创建数据元素,但我肯定有更好的方法来实现这一点…?我收到的任何/所有建议都很受欢迎,因为蛮力方法速度慢且麻烦……而且客户必须经常使用,因此我不确定它在当前的实施中是否可以接受。由于您遇到城市没有所有报告的问题,您是否尝试过离开?要获取网格的行,可以执行以下操作:
select sales.amt, Demographics.amt, LandArea.amt from cities left join sales on cities.cityid = sales.cityid
left join Demographics on cities.cityid = Demographics.cityid
left join LandArea on cities.cityid = LandArea.cityid
上述查询的唯一缺点是,报告类型人口统计、销售、土地面积等在查询中是硬编码的。也许您可以将上面的查询与您提到的尝试过的动态查询混合使用
也许显示网格的代码可以帮助您获得更好的答案
希望能有所帮助。我可以很容易地加入表格,但是,后续的查询让我感到悲伤……不是所有城市都会有每个报告的数据。我查看了一个城市临时表,其中为每个报告/列动态生成列,但我的开发人员笔记本电脑上没有互联网,所以我一直无法使用空值,因此不得不使用伪代码。。。foreach row foreach column查询传入row&column变量,有效地对网格中的每个单元格进行查询。查询一个只有几个城市的州,并选择报告…不是一个大城市。用六份或八份报告来了解Cali?不太好。如前所述,我已经找到了一个解决方案…但它给我的印象是效率低下且成本高昂。。。