Получение VARCHAR (Макс) - PullRequest
       18

Получение VARCHAR (Макс)

2 голосов
/ 21 июля 2011

Как я могу получить столбец типа данных Varchar(MAX) из базы данных SQL Server в C #?

Я не думаю, что SqlDataReader помогает получить его.

Любая подсказка?

Спасибо

Ответы [ 2 ]

3 голосов
/ 21 июля 2011

Это просто строковое поле .... просто возьмите его, как любую другую строку .....

// define your query
string query = "SELECT YourField FROM dbo.YourTable WHERE ID = 1";

using(SqlConnection conn = new SqlConnection("......"))
using(SqlCommand cmd = new SqlCommand(query, conn))
{
   conn.Open();

   using(SqlDataReader rdr = cmd.ExecuteReader())
   {
       if(rdr.Read())
       {
          string fieldValue = rdr.GetString(0);
       }
   }

   conn.Close();
}

В типе VARCHAR(MAX) нет ничего особенного - это просто текстовое поле,и он может вместить до 2 ГБ текста - как .NET string.Вам не нужно делать ничего особенного, например, потоковую передачу или что-то еще - просто прочитайте столбец в строку!

0 голосов
/ 21 июля 2011

Работа с типами больших значений в ADO.NET

reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
while (reader.Read())
{
    SqlChars buffer = reader.GetSqlChars(0);
}

Или просто преобразовать его в тип CLR:

while (reader.Read())
{
     string str = reader[0].ToString();
     Console.WriteLine(str);
}
...