asp.net sql цикл чтения данных по столбцам - PullRequest
5 голосов
/ 09 февраля 2012

У меня есть SQL-запрос в моем веб-приложении asp.net, и результат сохраняется в 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);
    }
}

Надеюсь, вы поняли.Спасибо

Ответы [ 2 ]

15 голосов
/ 09 февраля 2012

Используйте FieldCount свойство SqlDataReader:

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 голосов
/ 09 февраля 2012

Вы должны просто сделать это через 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) содержит все данные из вашего запроса.

...