2010-09-28 8 views
4

У меня есть столбец varchar (max), который я пытаюсь прочитать, но поле усекается на 4000 символов. Я видел similar questions, но они находятся на стороне sql.varchar (max) + linq to sql

Что мне нужно сделать, чтобы получить все поле?

Например:

using (DataContext dc = new DataContext()) 
{ 
    var foo = dc.foos.First(); 
    if (foo.Formula2.Length > 4000) 
    { 
     Console.WriteLine("success!"); 
    } 
} 

Я пытался что-то вроде setting TextSize но это не делает разницы .:

dc.ExecuteCommand("SET TEXTSIZE 100000;"); 
var foo = dc.foos.First(); 

UPDATE:

Тип данных с сервера VARCHAR (макс). Поле в вопросе Formula2: alt text

Если я пытаюсь изменить тип на что-то другое, как объект, я получаю сообщение «Mapping между DBTYPE„VARCHAR (MAX)“и Type„System.Object“в колонке» Формула 2 'типа' t_PriceFormula 'не поддерживается. '

Любые предложения?

+0

Как сконфигурирован столбец в DBML? в частности, свойство «Тип данных сервера»? –

+0

Каков уровень совместимости сервера базы данных? см. здесь - http://msdn.microsoft.com/en-us/library/bb510680.aspx –

ответ

3

С thanks в 888.

Это кажется немного запутанным, но это сработало.

Преобразование поля в массив, а затем обратно в строку.

var foo = dc.foos.First(); 
string formula = new string(foo.Formula2.ToArray()); 
+0

Разве это не ответ 888? Разве вы не награждаете их? –

+1

Предложение 888 состояло в том, чтобы преобразовать поле в varbinary (max). Я поддержал и использовал это, чтобы получить ответ. –

2

звучит как .net конвертировать varchar в nvarchar Я не знаю, как его решить. но System.Text.Encoding может помочь попробовать этот

//1 set col in db to varbinary(max) 

//2 and when u want to save to db 
string formula = "..."; 
System.Data.Linq.Binary bin = new System.Data.Linq.Binary(System.Text.Encoding.ASCII.GetBytes()); 

//3 when u pull ou 
    Binary bin = row.Formula2; 
    string formula = System.Text.Encoding.ASCII.GetString(bin.ToArray()); 
+0

Преобразование поля в varbinary является экстремальным. Если база данных поддерживает поле, тогда должен быть способ ее получить ... –

Смежные вопросы