【问题标题】:asp.net sql datareader loop by columnsasp.net sql数据读取器按列循环
【发布时间】:2012-02-09 17:51:44
【问题描述】:

我的 asp.net webapp 中有 sql 查询,结果存储在 datareader 中。 datareader 中的每一行包含 10 列。我想用这些数据填充表格。但是,我不知道如何遍历 datareader 中的列。我需要这样的东西:

while (vysledky.Read())
{
    TableRow row = new TableRow();
    tab.Controls.Add(row);
    foreach (column in ((datareader(row)))  //it is not real code
    {
      TableCell cell = new TableCell();
      cell.Text = datareader(row).content;
      row.Controls.Add(cell);
    }
}

我希望你明白这一点。谢谢

【问题讨论】:

    标签: c# asp.net sqldatareader


    【解决方案1】:

    使用SqlDataReaderFieldCount 属性:

    while (vysledky.Read())
    {
        // Iterate over each of the fields (columns) in the datareader's current record
        for (int i = 0; i < vysledky.FieldCount; i++)
        {
            var value = vysledky[i];
    
            TableCell cell = new TableCell(); 
            cell.Text = Convert.ToString(value); 
            row.Controls.Add(cell); 
        }
    }
    

    【讨论】:

      【解决方案2】:

      你应该通过SqlDataAdapter

      SqlConnection Conn = new SqlConnection(YourConnectionString);
      SqlCommand YourSqlCommand = new SqlCommand();
      YourSqlCommand.Connection = Conn;
      YourSqlCommand.CommandText = "select * from yourtable";
      
      DataTable dt = new DataTable();
      
      SqlDataAdapter sda = new SqlDataAdapter(YourSqlCommand);
      
      sda.Fill(dt);
      

      此时,您的 DataTable (dt) 包含查询中的所有数据。

      【讨论】:

      • 看起来它是一个 ASP 表而不是一个 DataTable
      • @Magnus ASP 表?我不跟。这绝对是一个DataTable,其中包含来自SqlCommand 查询的完整数据。
      • @Shark 他想填充 ASP 表而不是 DataTable。在问题中,他指的是TableRow 而不是DataRow
      猜你喜欢
      • 1970-01-01
      • 2015-11-04
      • 2023-01-10
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      • 2012-06-08
      • 1970-01-01
      相关资源
      最近更新 更多