powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / RichTextBox <=> MS SQL
5 сообщений из 5, страница 1 из 1
RichTextBox <=> MS SQL
    #39352815
Lexx_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Данные загружаются из БД MSSQL в Dataset (SQLDataAdapter->Dataset) и отображаются в каких-то элементах, например:
DatagridView,RichTextBox...
В RichTextBox данные попадают
dataset->BindingSource->RichTextBox
RichTextBox связан с DataSet через DataBinding.Text=BindingSource-Поле.
Для текста это работает, но для текста с форматированием нет.
Вопрос:
как сделать сохранение форматированного текста в БД, кроме как постоянно обрабатывать загрузку и сохранение RichTextBox.RTF?
Возможно ли это сделать?
...
Рейтинг: 0 / 0
RichTextBox <=> MS SQL
    #39353033
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Lexx_SQL,

В BLOBах храните?
BLOBы надо по другому сохранять, надо явно преобразовывать содержимое в Byte[]
...
Рейтинг: 0 / 0
RichTextBox <=> MS SQL
    #39353299
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут проблема не в конвертации блобов, а в том, что RichTextBox.Text содержит тупо plain text без разметки. RTF-представление устанавливает/возвращает свойство RichTextBox.Rtf, но оно не биндабельное. Можно засабклассить RichTextBox, и там исправить это недоразумение:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
[
  ClassInterface(ClassInterfaceType.AutoDispatch),
  DefaultBindingProperty("Rtf"),
  Description("DescriptionRichTextBox"),
  ComVisible(true), Docking(DockingBehavior.Ask),
  Designer("System.Windows.Forms.Design.RichTextBoxDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
]
public class RichTextBoxX : RichTextBox, INotifyPropertyChanged
{
  [
    Bindable(true),
    RefreshProperties(RefreshProperties.All),
    SettingsBindable(true),
    DefaultValue(false),
    Category("Appearance")
  ]
  new public string Rtf
  {
    get
    {
      return base.Rtf;
    }
    set
    {
      base.Rtf = value;
      RaisePropertyChanged("Rtf");
    }
  }

  protected override void OnTextChanged(System.EventArgs e)
  {
    base.OnTextChanged(e);
    RaisePropertyChanged("Rtf");
  }

  protected virtual void RaisePropertyChanged(string propertyName)
  {
    var pc = Interlocked.CompareExchange(ref PropertyChanged, null, null);
    if (pc!=null)
      pc(this, new PropertyChangedEventArgs(propertyName));
  }

  public event PropertyChangedEventHandler PropertyChanged;
}


ну, и после этого, соответственно, вместо RichTextBox использовать RichTextBoxX, и биндиться к его свойству Rtf.
...
Рейтинг: 0 / 0
RichTextBox <=> MS SQL
    #39353341
Lexx_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,
Спасибо.
...
Рейтинг: 0 / 0
RichTextBox <=> MS SQL
    #39354157
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Чето я думаю,что это слишком сложно
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / RichTextBox <=> MS SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]