ASP.NET Gridview控件如何显示查询数据?

时间:2014-07-20 15:39:59

标签: c# asp.net sql gridview

我对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();
            }

2 个答案:

答案 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>

将前面的代码用于前端

相关问题