检索VARCHAR(MAX)

时间:2011-07-21 07:12:51

标签: c# .net asp.net sql sql-server-2005

如何从C#中的SQL Server数据库中检索数据类型Varchar(MAX)的列?

我认为SqlDataReader无助于检索它。

有任何线索吗?

由于

2 个答案:

答案 0 :(得分:3)

它只是一个字符串字段....就像任何其他字符串一样抓住它.....

// 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 GB的文本 - 就像.NET string一样。你不需要做任何特别的事情,比如流媒体或任何东西 - 只需将列读成字符串!

答案 1 :(得分:0)

Working with Large-Value Types in 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);
}