RichTextBox.RTF не принимает строку, сгенерированную из базы данных – C#C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 RichTextBox.RTF не принимает строку, сгенерированную из базы данных – C#

Сообщение Anonymous »

У меня есть немного странная проблема. Я пытаюсь создать форму, которая при выборе из ListBox будет запрашивать данные из базы данных и отображать их в RichTextBox. Для форматирования мне нужны данные в формате RTF.

Если я сделаю что-то вроде этого, все будет работать нормально:

Код: Выделить всё

    private void SaveListTest_SelectedIndexChanged(object sender, EventArgs e)
{
DescriptionName = Convert.ToString(SaveListTest.SelectedItem);
//CallDescriptionTest();
CallDescriptionTest2();
SaveRichTest.Rtf = DescriptionText;
}

public void CallDescriptionTest2()
{
switch (DescriptionName)
{
case "Test":
DescriptionText = @"{\rtf1\ansi\ Test}";
break;
case "Words":
DescriptionText = @"{\rtf1\ansi\ A really long phrase}";
break;
}
}
В таком случае RichTextBox (SaveRichTest) возьмет данные и отобразит их без проблем.

Однако, если я сделаю что-то подобное, то в столбце «Описание» в базе данных будет введен текст точно так, как указано выше (например, @"{\rtf1\ansi\ Test}"):

Код: Выделить всё

    private void SaveListTest_SelectedIndexChanged(object sender, EventArgs e)
{
DescriptionName = Convert.ToString(SaveListTest.SelectedItem);
CallDescriptionTest();
//CallDescriptionTest2();
SaveRichTest.Rtf = DescriptionText;
}

public void CallDescriptionTest()
{
using (SqlConnection con = new SqlConnection(BuildDB))
{
con.Open();
string sql = String.Format("Select * from Abilities where Name = '{0}'", DescriptionName);
SqlCommand oCmd = new SqlCommand(sql, con);

using (SqlDataReader oReader = oCmd.ExecuteReader())
{
while (oReader.Read())
{
DescriptionText = Convert.ToString(oReader["Description"]);
}
con.Close();
}
}
}
Вместо этого это приведет к сбою программы с ошибкой «Недопустимый формат файла».

Я знаю, что текст извлекается из базы данных правильно, потому что если я изменю «SaveRichTest.Rtf» на «SaveRichTest.Text», он отобразится правильно (хотя и с отображаемым кодом форматирования RTF).

Я просто не могу понять, почему во втором случае строка не принимается должным образом. Для меня это не имеет никакого смысла. Может кто-нибудь помочь?

Подробнее здесь: https://stackoverflow.com/questions/348 ... se-c-sharp
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Извлечь строку RTF из RichTextBox в C#.Net6.0 WPF
    Гость » » в форуме C#
    0 Ответы
    41 Просмотры
    Последнее сообщение Гость
  • LibreOffice преобразует файлы из RTF в PDF в обычный текст RTF.
    Anonymous » » в форуме JAVA
    0 Ответы
    47 Просмотры
    Последнее сообщение Anonymous
  • С# RTF в обычный текст с RichTextBox не работает
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • С# RTF в обычный текст с RichTextBox не работает
    Anonymous » » в форуме C#
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Как добавить текст RTF в RichTextBox, Win C#
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»