C# 如何使用标签从数据库填充C中的表

C# 如何使用标签从数据库填充C中的表,c#,asp.net,oracle,C#,Asp.net,Oracle,下面是我从oracle数据库获取数据以在asp.netC中显示包含多行的表的代码。Te列将包括姓名、章节和性别。表的标题是硬编码的,只应从数据库中填充行数据。在执行代码时,我只得到来自数据库的第一行。剩下的行不来了。请提出解决方案 public void GetDailyData() { using (OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings["

下面是我从oracle数据库获取数据以在asp.netC中显示包含多行的表的代码。Te列将包括姓名、章节和性别。表的标题是硬编码的,只应从数据库中填充行数据。在执行代码时,我只得到来自数据库的第一行。剩下的行不来了。请提出解决方案

public void  GetDailyData()
    {
        using (OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings["dataconn"].ToString()))
        {

            try
            {
                string query = @"SELECT  name,section, gender FROM t_student WHERE order by TRUNC(admissionDate)";               
                OracleCommand cmd = new OracleCommand(query, conn);
                conn.Open();
                OracleDataAdapter da = new OracleDataAdapter(cmd);


               DataSet ds = new DataSet();
               cmd.ExecuteNonQuery();
               da.Fill(ds);

               foreach (DataRow dr in ds.Tables[0].Rows)
               {


                    if (ds.Tables[0].Rows.Count > 0)
                   {
                        LabelName.Text = ds.Tables[0].Rows[0].Field<string>(0);
                       LabelSection.Text = ds.Tables[0].Rows[0].Field<string>(1) ;
                      LabelGender.Text = ds.Tables[0].Rows[0].Field<string>(2) ;


                 }

              }                                                   

            }
            catch (Exception ex)
            {
                throw ex;
            }            
        }

    }

您只看到第一行中的行数据,因为当您说ds.Tables[0]时,这就是您要提取的数据。行[0]-行[0]将始终是表的第一行

这整段代码都很混乱

不能使用单个标签显示多行-请使用网格组件并将其数据绑定到datatable

代码使用循环遍历表中的行,但检查表中是否有行,在循环中,如果没有行,循环将不会运行,并且在每次循环中,它总是访问第一行,而不是使用枚举行

不要使用数据集,只需创建一个新的数据表并填充它-数据集用于处理多个相关的数据表,在这种情况下,单个表是无用的额外层

不要对命令执行ExecuteOnQuery,这是一个无用的操作-dataadapter将在填充期间执行查询,您不需要执行,ExecuteOnQuery用于插入/更新/删除/创建等-这是一个选择。 您的代码可以/应该更像:

DataTable dt = new DataTable();
da.Fill(dt);
gridControl.DataSource = dt;
gridControl.DataBind();
就这样。除了命令和连接之外的所有其他代码都应该扔掉