Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net sql datareader按列循环_C#_Asp.net_Sqldatareader - Fatal编程技术网

C# asp.net sql datareader按列循环

C# asp.net sql datareader按列循环,c#,asp.net,sqldatareader,C#,Asp.net,Sqldatareader,我的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 no

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

我希望你明白了。谢谢

使用
SqlDataReader
FieldCount
属性:

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); 
    }
}
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);
while(vysledky.Read())
{
//迭代datareader当前记录中的每个字段(列)
对于(int i=0;i
您应该通过一个
SqlDataAdapter

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); 
    }
}
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@MagnusASP表格?我没听懂。这绝对是一个
DataTable
,包含来自
SqlCommand
@Shark查询的完整数据。他想填充一个ASP表,而不是
DataTable
。在问题中,他指的是
TableRow
而不是
DataRow