2012-02-09 15 views
5

私は自分のasp.net webappでsqlクエリを持っており、結果はdatareaderに格納されています。 datareaderの各行には10個の列があります。私はこれらのデータでテーブルを埋める必要があります。しかし、私はどのようにdatareaderの列をループするのか分かりません。私はこのようなものが必要です:asp.net sql datareaderループby列

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

私はあなたがポイントを得たと思います。あなただけ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); 
    } 
} 

答えて

14

SqlDataReaderFieldCountプロパティを使用しますあなたの質問から。

+0

ありがとう、それは私が必要とするものです – polohy

1

:時点

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); 

、あなたのDataTabledt)は、すべてのデータが含まれているおかげで

+1

そのASPテーブルのように見えるDataTable – Magnus

+0

素敵な、私もそれを試してみます – polohy

+0

@マグヌスASPテーブル?私はフォローしていません。これは間違いなく 'SqlCommand'のクエリからの完全なデータを持つ' DataTable'です。 –