RichTextBox Inhalt in MySQL Datenbank speichern

  • WPF

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Thomas2705.

    RichTextBox Inhalt in MySQL Datenbank speichern

    Ich möchte den Inhalt einer RichTextBox in einer MySQL Datenbank speichern und nutze folgenden Code:

    XML-Quellcode

    1. <RichTextBox x:Name="ds_kom_hinweis">
    2. <FlowDocument>
    3. <Paragraph>Hallo Welt</Paragraph>
    4. <Paragraph>und der Rest...</Paragraph>
    5. </FlowDocument>
    6. ...


    VB.NET-Quellcode

    1. Dim ds_kom_hinweis As TextRange = New TextRange(Me.ds_kom_hinweis.Document.ContentStart, Me.ds_kom_hinweis.Document.ContentEnd)
    2. Using conn As New MySqlConnection(My.Settings.db_vision_client)
    3. conn.Open()
    4. Using MyAdapter As New MySqlDataAdapter("", conn)
    5. Using cmd As New MySqlCommand("", conn)
    6. cmd.CommandText = String.Format("UPDATE ds_kom SET ds_kom_hinweis = '{0}' WHERE ds_kom_id = " & MyVar, ds_kom_hinweis)
    7. cmd.ExecuteNonQuery()


    Allerdings wird im Datenfeld der Tabelle lediglich "System.Windows.Documents.TextRange" gespeichert. Was mache ich falsch? Es geht mir im Moment nicht so sehr um die Formatierung des Inhalts sondern vielmehr um das Speichern des eigentlichen Inhalts der RichTextBox.

    Thomas2705 schrieb:

    Allerdings wird im Datenfeld der Tabelle lediglich "System.Windows.Documents.TextRange" gespeichert.
    naja, was wolle?
    ein TextRange-Objekt ist kein Text, sondern ist ein TextRange.
    Wenn du den Text eines TextRanges speichern willst, musste auch den .Text des TextRanges addressieren.
    Hallo @Thomas2705 und willkommen im Forum.

    Ich stand mal vor einem ähnlichem Problem, wollte allerdings auch die Formatierung mitspeichern und später wieder laden.
    Ich kann dir hier an dieser Stelle die RichtTextBox vom XCeed Toolkit empfehlen.

    XML-Quellcode

    1. <toolkit:RichTextBox Background="Transparent" Grid.Row="2"
    2. IsReadOnly="True" VerticalScrollBarVisibility="Auto" Text="{Binding Description,FallbackValue=Fehler,TargetNullValue=Fehler}" MaxHeight="100" MinHeight="90">
    3. <toolkit:RichTextBox.TextFormatter>
    4. <toolkit:RtfFormatter />
    5. </toolkit:RichTextBox.TextFormatter>
    6. </toolkit:RichTextBox>


    In Verbindung mit der RichtextBoxFormatBar kann der User den Text auch schnell und Word-Like bearbeiten.

    Schöne Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Thomas2705 schrieb:

    Sascha; ich fürchte ich sehe den Wald vor Bäumen nicht und sehe die Möglichkeitkeit nicht an den Quellcod oder die dll zu kommen.

    Hallo

    Das geht einfacher als du glaubst. Einfach das NuGet Paket einbinden und fertig.
    Ich gehe dir ein wenig unter die Arme.

    Rechtsklick bei deiner Solution auf Verweise und dort auf NuGet Pakete verwalten.


    Stelle sicher das du im Reiter Durchsuchen bist und tippe in der Suche "toolkit" ein.


    Wähle das XCeed Toolkit aus und klicke auf installieren.


    Nun in deinem Window oder UserControl den Namespace des Toolkits einbinden.


    So, nun kannst du auf die Controls des Toolkits zugreifen.
    +

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Sascha; vielen Dank für die Unterstützung.

    ErfinderDes Rates ( ;) ); jetzt stellt sich mir die Frage wie ich meinen in der Datenbank gespeicherten Text wieder aus der Datenbank in meine RichtextBox bekomme. Bisher nutzte ich eine TextBox und ein entsprechendes Bindig an den Text. Bei RichtextBox ist es offensichtlich ganz anders. Ich versuchte erfolglos folgendes:

    VB.NET-Quellcode

    1. Dim Range As New TextRange(Me.ds_kom_hinweis.Document.ContentStart, Me.ds_kom_hinweis.Document.ContentEnd)
    2. Dim ds_kom_hinweis = Range.Text
    3. cmd.CommandText = String.Format("INSERT INTO ds_kom (ds_kom_hinweis) VALUES('" & ds_kom_hinweis & "')")


    Ich habe mir so ein Zeug zusammengebastelt ; aber das ist ganz sicher keine schöne Lösung.

    XML-Quellcode

    1. <RichTextBox x:Name="ds_kom_hinweis">
    2. <RichTextBox.Document>
    3. <FlowDocument>
    4. <BlockUIContainer>
    5. <TextBox Text="{Binding ds_kom_hinweis}"></TextBox>
    6. </BlockUIContainer>
    7. </FlowDocument>
    8. </RichTextBox.Document>
    9. ---


    Wie bekomme ich den TextRange aus der Datenbank in meine RichTextBox wenn es offensichtlich kein Binding für Text gibt?

    So ist es jetzt; etwas besser:

    XML-Quellcode

    1. <FlowDocument>
    2. <Paragraph>
    3. <Run Text="{Binding ds_kom_hinweis}"></Run>
    4. </Paragraph>
    5. </FlowDocument>

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thomas2705“ ()