|
|
And what is the Multiline property[^] set to? If you've changed it to False , then you won't see any line breaks.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
|
Two things:
- have you checked from the database? If you query using SSMS, is the value in DB correct?
- if not, what is the data type of your column?
|
|
|
|
|
|
And what about the first question? If you query the value from SSMS, is it correct?
NOTE: you can't see the linefeed in SSMS output so copy the value from the column and paste it for example into notepad to see if it contains linefeed or not.
|
|
|
|
|
does not contain linefeed
|
|
|
|
|
Then I believe the next step is to check the calling side.
After you have set to myobject.text value, using debugger, see if the property myobject.text contains the linefeeds or not. If it does, then they are removed one way or another during the save and if not then the assignment is somehow wrong.
|
|
|
|
|
After setting the myobject.mytext value , using the debugger I see that it contains the linefeeds.
So I think that SQl server doesn't know the vbcrlf maybe ????? !!!
|
|
|
|
|
vbCrLf is a carriage return (ASCII code 13) followed by a line-feed (ASCII code 10). SQL is perfectly capable of storing those characters in a varchar field.
Given what you've told us, there is no reason why the line breaks would disappear. Therefore, either something you've told us is wrong, or there's something else going on that you haven't told us about.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
To rectify; that is not "thinking", that is "guessing" - and it is not helping.
Saving text in a database is a very (!) common practice. As far as SQL Server is concerned in respect to data, the CRLF combinination is "just" as set of characters in a specified encoding.
Write a small console-app that reproduces your problem; that way it should be fairly simple to point out the problem.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Something doesn't match here. Everything should be just fine. So probably there is something you have missed so I would advice going through all the things we have asked once more and re-checking the behaviour.
Also if possible, create as simple test case as possible with minimal amount of code. For example create a new table, just one column, create EF part for it and run a simple insert with a fixed text from the code side and see what happens. I believe this should clarify the situation.
|
|
|
|
|
Have you tried this before speaking ?
Or you are just speaking in theory ?
|
|
|
|
|
|
Could you explain what this link has to do with my problem ?
|
|
|
|
|
You are questioning the ability and experience of someone who is tryin very hard to help you. The link will help you to see just what experience he has.
|
|
|
|
|
And not for the first time - take a look at the user's message history for previous examples.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
satc wrote: Have you tried this before speaking ?
Or you are just speaking in theory ?
Yes, I've tried this many times with many technologies.
Here's a small sample for you to test with. As far as I can see, it works as expected. Try the example, just generate the model from the database.
As a side-note, I didn't downvote you.
Table preparation
create table TestDataRTF (
id int identity(1,1) primary key,
textvalue varchar(100)
);
insert into TestDataRTF (textvalue) values ('initial');
select * from TestDataRTF;
Form code-behind
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class DataForm
Inherits System.Windows.Forms.Form
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
Private components As System.ComponentModel.IContainer
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
Me.Save = New System.Windows.Forms.Button()
Me.Clear = New System.Windows.Forms.Button()
Me.Fetch = New System.Windows.Forms.Button()
Me.SuspendLayout()
Me.RichTextBox1.Location = New System.Drawing.Point(12, 12)
Me.RichTextBox1.Name = "RichTextBox1"
Me.RichTextBox1.Size = New System.Drawing.Size(149, 130)
Me.RichTextBox1.TabIndex = 0
Me.RichTextBox1.Text = ""
Me.Save.Location = New System.Drawing.Point(167, 41)
Me.Save.Name = "Save"
Me.Save.Size = New System.Drawing.Size(75, 23)
Me.Save.TabIndex = 1
Me.Save.Text = "Save row 1"
Me.Save.UseVisualStyleBackColor = True
Me.Clear.Location = New System.Drawing.Point(167, 70)
Me.Clear.Name = "Clear"
Me.Clear.Size = New System.Drawing.Size(75, 23)
Me.Clear.TabIndex = 2
Me.Clear.Text = "Clear"
Me.Clear.UseVisualStyleBackColor = True
Me.Fetch.Location = New System.Drawing.Point(167, 12)
Me.Fetch.Name = "Fetch"
Me.Fetch.Size = New System.Drawing.Size(75, 23)
Me.Fetch.TabIndex = 3
Me.Fetch.Text = "Fetch row 1"
Me.Fetch.UseVisualStyleBackColor = True
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(311, 171)
Me.Controls.Add(Me.Fetch)
Me.Controls.Add(Me.Clear)
Me.Controls.Add(Me.Save)
Me.Controls.Add(Me.RichTextBox1)
Me.Name = "DataForm"
Me.Text = "DataForm"
Me.ResumeLayout(False)
End Sub
Friend WithEvents RichTextBox1 As System.Windows.Forms.RichTextBox
Friend WithEvents Save As System.Windows.Forms.Button
Friend WithEvents Clear As System.Windows.Forms.Button
Friend WithEvents Fetch As System.Windows.Forms.Button
End Class
Form code
Public Class DataForm
Dim context As SampleDBEntities = New SampleDBEntities()
Private Sub Save_Click(sender As Object, e As EventArgs) Handles Save.Click
context.TestDataRTF.Find(1).textvalue = RichTextBox1.Text
context.SaveChanges()
End Sub
Private Sub Clear_Click(sender As Object, e As EventArgs) Handles Clear.Click
RichTextBox1.Clear()
End Sub
Private Sub Fetch_Click(sender As Object, e As EventArgs) Handles Fetch.Click
RichTextBox1.Text = context.TestDataRTF.Find(1).textvalue
End Sub
End Class
|
|
|
|
|
Sorry , friend it's strange but only this is working :
"This is line 1." + CHAR(13)+CHAR(10) + CHAR(13)+CHAR(10) + "This is line 2."
but I have to put twice CHAR(13)+CHAR(10).
Can you explain why ?
|
|
|
|
|
I take it that is part from an SQL command.
The problem is that you're defining LF/CR twice so in the overall result is LF/CR/LF/CR so only the middle part is correct. ASCII codes
- CR = 13
- LF = 10
In the example I wrote, try the following for the initial value and fetch it. Should show up nicely:
update TestDataRTF
set textvalue = 'A' + char(13) + char(10) + 'B'
where id = 1
|
|
|
|
|
I take it that is part from an SQL command.
The problem is that you're defining LF/CR twice so in the overall result is LF/CR/LF/CR so only the middle part is correct. ASCII codes
- CR = 13
- LF = 10
In the example I wrote, try the following for the initial value and fetch it. Should show up nicely:
update TestDataRTF
set textvalue = 'A' + char(13) + char(10) + 'B'
where id = 1
Edit:
Sorry, I read the codes you posted wrong so they seem to be on correct order. So have a try with the example I wrote. As far as I can see, it works.
|
|
|
|
|
No , this is not part of a pure sql command.
I just write :
Myobject.mytext="This is line 1." + CHAR(13)+CHAR(10) + CHAR(13)+CHAR(10) + "This is line 2."
But if I use once Char(13)+Char(10) , doesn't work ???? !!!
|
|
|
|
|
Now I don't quite understand. Char is a type not a function so if I copy and paste your code fragment to a VB.Net project it'll give the following error
Error 'Char' is a type and cannot be used as an expression.
|
|
|
|
|
Myobject.mytext="This is line 1." + CHR(13)+CHR(10) + CHR(13)+CHR(10) + "This is line 2."
|
|
|
|
|
Okay so it's Chr, not Char.
Still, works just fine. Please use the test program I wrote. Modify the Save button as follows
Private Sub Save_Click(sender As Object, e As EventArgs) Handles Save.Click
context.TestDataRTF.Find(1).textvalue = "This is line 1." + Chr(13) + Chr(10) + Chr(13) + Chr(10) + "This is line 2."
context.SaveChanges()
End Sub
The result for me is correct:
This is line 1.
This is line 2.
Using that test program, do you get different results?
|
|
|
|