Извлечение отдельных столбцов из набора результатов ADO.NET - PullRequest
0 голосов
/ 29 апреля 2011

У меня есть веб-сайт, который настроен на запрос базы данных для имени пользователя, а затем заполняет переменные Session[] информацией о пользователе.Когда я выполняю запрос, используя хранимую процедуру сервера, я получаю обратно всю строку.Как разделить строку и проанализировать ее так, чтобы каждый столбец анализировался отдельно?

Мой код для кнопки:

protected void Button4_Click(object sender, EventArgs e)
{
    string strConn = WebConfigurationManager.ConnectionStrings["TicketsConnectionString"].ConnectionString;
    SqlConnection myConnection = new SqlConnection(strConn);
    //Search button
    string sqlText = ("select * from [dbo].[User]");






    SqlCommand myCommand = new SqlCommand(sqlText,myConnection);
    myCommand.CommandType = CommandType.Text;
    myConnection.Open();
    SqlDataReader objReader;
    objReader = myCommand.ExecuteReader();

    objGrid.DataSource = objReader;
    objGrid.DataBind();
}

ОБНОВЛЕНИЕ

Я обновил его до string sqlText = ("select 'UserID', 'FirstName' from [dbo].[User] where UserID='"+txtTest.Text+"' and Password='" + txtPass.Text+"'");

Но теперь я получаю следующий столбец Column1 Column2 UserID FirstName

Ответы [ 2 ]

1 голос
/ 29 апреля 2011

Чтобы прочитать значение столбца, используйте это:

 avar = row["colname"];
0 голосов
/ 29 апреля 2011

Вместо:

string sqlText = ("select * from [dbo].[User]");

Использование:

 string sqlText = ("select username from [dbo].[User]");

Это вернет только тот столбец, который вам нужен.

* ОБНОВЛЕНИЕ *

Выполнение серии запросов для всех свойств определенно не является хорошим вариантом. Вы можете выбрать все нужные столбцы, разделив их запятыми, например:

 string sqlText = ("select username, otherfield, evenAnotherField from [dbo].[User]");

Затем вы можете использовать SqlDataReader indexer , чтобы получить нужные вам значения:

  var username = objReader["username"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...