Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > Как преобрзовать объект в строку? |
Автор: remal 1.11.2008, 18:05 | ||||||||
Вобщем такая ситуация. Беру из базы данных из поля мемо текст (длинна его значительно больше чем 255 символов)
Мне его нужно поместить в richTextBox (напрямую он естественно не хочет)
А если преобразовывать в строку, то урезает до 255 символов, что есть совсем не гуд
И такой вариант тоже урезает
Че делать то, братцы? Как его заставить выдать все содержимое в текстбокс? |
Автор: mihryak 1.11.2008, 23:54 |
а ты уверен, что это не база обрезает при записи? посмотри какими-нибудь вьюерами содержимое таблицы пс. что за база, кстати? |
Автор: archeg 2.11.2008, 01:35 | ||
Access. Автор уже в другом топике спрашивал. Я не особо работал с ексесом, там Memo случаем не CLOB? |
Автор: remal 5.11.2008, 09:23 |
База dbf, в самой базе ниче не обрезается, смотрел вьювером. |
Автор: MasterOfCode 5.11.2008, 09:38 |
Может дело в Текстбоксе, поставте текстбоксу свойство Мультилайн в тру. Или попробуйте вывести в другой контрол. Или сохраните в файл. И тогда определите кто именно шкодит, датаридер, текст бокс или БД. ![]() |
Автор: remal 5.11.2008, 12:34 |
Не, дело именно в преобразовании в строку (ToString), как я понял, потому что я уже проверил во всех возможных контролах, и к тому же вывод даже из поля типа Character все-равно обрезается, даже не знаю как с этой бедой справиться. |
Автор: MasterOfCode 5.11.2008, 12:40 | ||
К чему такая уверенность, вы проверяли в дебаге что возвращает эта строка:
|
Автор: archeg 5.11.2008, 14:33 |
Код и базу в студию |
Автор: Dims 5.11.2008, 14:43 |
Мысли вслух. База данных, как правило, как раз и имеет ограничение в 255 символов на строку. Если символов больше, то поле должно быть полем Мемо, оно может содержать сколько угодно символов, причём первые 255 будут храниться прямо в записи, а остальные -- в отдельном ресурсе. Поскольку поле Мемо может содержать гигабайты данных, то и читать его, наверное, надо не через преобразование в строку, а через создание отдельного потока. То есть, я бы поискал соответствующие для этого методы. Вероятно, когда Вы делаете ToString, система полагает, что Вам нужна именно строка, то есть, НЕ МЕМО. И потому обрезает. |
Автор: remal 5.11.2008, 15:03 | ||
Вот код, тут правда консольная версия, но сути дела это не меняет, даже в консоли режет беспощадно
База в приаттаченом файле Вопрос к Dims, а вы что-нибудь подобное проделывали? Если возможно код для примера? Спасибо. |
Автор: Dims 5.11.2008, 18:26 |
Сейчас нет времени искать решение. Помню, что с таким сталкивался, совсем в другой задаче и на другом языке. И вспоминаю свои мысли на этот счёт. Если конкретнее, то сейчас посмотрел хелп и думаю, что надо попробовать использовать метод GetData, а не GetValue. |
Автор: remal 6.11.2008, 15:11 | ||
Всем спасибо, решение оказалось проще чем мы все предполагали, вот при такой конструкции выдает все замечательно
|
Автор: Bogdan1024 6.11.2008, 16:57 | ||||
remal, интереса ради, скажи пожалуйста что возвращает эта функция:
и
Бо мне почему-то кажется что это одни и те же классы. Нэ панимаю. |
Автор: remal 7.11.2008, 15:22 |
как ни странно оба возвращают System.String сам не пойму в чем тут фишка, на решение чисто случайно наткнулся, когда уже отчаялся и решил писать для мускула ![]() |