我对Gridview控件显示值有疑问;我想从一个表中的三列中对重复值求和,然后将最终结果放到Fridview单元格中。但是数据无法在Gridview上显示,但我在我的sql管理工作室中测试sql命令它运行良好,有谁可以帮我解决它?谢谢!
我的表名是 [评估] ;
所有列都是: [assessmentID],[工作站],[日期] ..... [numberOfhigh],[numberOffurther],[numberOflow]。
现在我按顺序使用“ SELECT SUM(numberOfhigh),SUM(numberOffurther),SUM(numberOflow)FROM Assessment GROUP BY workstation HAVING COUNT(*)> 1 ”获得重复工作站的总风险。
前端代码:
<asp:GridView ID="GridView1" runat="server" style="margin-left: 318px" AutoGenerateColumns="False" Height="269px" Width="440px" >
<Columns>
<asp:BoundField HeaderText="High Risk" DataField="high">
<ItemStyle BackColor="Red" />
</asp:BoundField>
<asp:BoundField HeaderText="Further Risk" DataField="further">
<ItemStyle BackColor="#CCCCCC" />
</asp:BoundField>
<asp:BoundField HeaderText="Low Risk" DataField="low">
<ItemStyle BackColor="#33CC33" />
</asp:BoundField>
</Columns>
</asp:GridView>
后端代码:
if (DropDownList2.SelectedIndex == 2 && DropDownList1.SelectedIndex == 1)
{
sqlConn.Open();
string cmdText = "SELECT SUM(numberOfhigh),SUM(numberOffurther),SUM(numberOflow) FROM Assessment GROUP BY workstation HAVING COUNT(*) > 1";
SqlDataAdapter sda = new SqlDataAdapter(cmdText, sqlConn);
DataSet ds = new DataSet();
sda.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
sqlConn.Close();
}
答案 0 :(得分:0)
您需要SELECT
中的别名,否则GridView
无法知道要绑定的内容。
SELECT SUM(numberOfhigh) AS high, SUM(numberOffurther) AS further, SUM(numberOflow) AS low
FROM Assessment
GROUP BY workstation HAVING COUNT(*) > 1
答案 1 :(得分:0)
使用您在数据库中用作字段名称的列名称,例如
<asp:BoundField HeaderText="High Risk" DataField="numberOfhigh">
<ItemStyle BackColor="Red" />
</asp:BoundField>
<asp:BoundField HeaderText="Further Risk" DataField="numberOffurther">
<ItemStyle BackColor="#CCCCCC" />
</asp:BoundField>
<asp:BoundField HeaderText="Low Risk" DataField="numberOflow">
<ItemStyle BackColor="#33CC33" />
</asp:BoundField>
</Columns>
</asp:GridView>
将前面的代码用于前端