выберите операторы как читать все из "*" - PullRequest
1 голос
/ 10 сентября 2010

Мое утверждение:

string sqlCommandText = "SELECT * FROM ForumThread WHERE";

Как мне прочитать * с него?

Я пытаюсь так, но это не работает:

if (reader["*"] != DBNull.Value)
{
    result.TextContent = Convert.ToString(reader["*"]);
}

Ответы [ 3 ]

4 голосов
/ 10 сентября 2010

* - это не столбец, это инструкция SELECT, чтобы просто захватить каждый столбец, который он может найти.

Хотя столбцы будут отображаться по отдельности, поэтому вам нужно перебирать столбцы один за другимодин и захватить их содержимое.

Чтобы получить содержимое столбца, вы можете сделать это:

StringBuilder sb = new StringBuilder();
for (int index = 0; index < reader.FieldCount; index++)
{
    object value = reader[index];
    if (value != DBNull.Value)
        sb.Append(value.ToString());
}
result.TextContent = sb.ToString();

Однако, это приведет к тому, что все будет объединено.

ДляНапример, если ваш результирующий набор будет выглядеть так:

A    B    C    D
10   20   30   Some name here

Тогда ваша результирующая строка будет выглядеть следующим образом:

102030Некоторое имя здесь

Это то, что вы хотите?

Возможно, вы сказали нам, чего хотите достичь, мы можем придумать лучший ответ?

1 голос
/ 10 сентября 2010

Кроме того, вы можете использовать этот метод для получения имени связанного поля:

reader.GetName( /* index of the column */);
0 голосов
/ 10 сентября 2010

Предположим, что ваша таблица ForumThread содержит столбец ThreadResponse , и вы действительно хотите прочитать столбец ThreadResponse , вы можете использовать следующий код:

//calculates the column ordinal based on column name
int ThreadResponseColumnIdx = reader.GetOrdinal("ThreadResponse");

//If there is a line in the result
if (reader.Read())
{
  //read from the current line the ThreadResponse column
  result.TextContent = reader.GetString(ThreadResponseColumnIdx);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...