|
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?
|
|
|
|
|
Ok , but why should I have twice Chr(13)+Chr(10) ?
Why doesn't work using these chars once ?
|
|
|
|
|
You still haven't verified was the output the same with the test program that I posted...
So I take it you got the exact same output. In that case you can clearly see that when you put character codes 13 and 10 twice, you get two newlines. If you put them only once meaning instead of this
context.TestDataRTF.Find(1).textvalue = "This is line 1." + Chr(13) + Chr(10) + Chr(13) + Chr(10) + "This is line 2." you code like this
context.TestDataRTF.Find(1).textvalue = "This is line 1." + Chr(13) + Chr(10) + "This is line 2."
You get only one newline like this
This is line 1.
This is line 2.
instead of the previous
This is line 1.
This is line 2.
So as far as I can see everything is working correct.
If the behaviour you experience with the test program I wrote is different, please provide all information concerning the code and the behaviour.
Then again if the test program works as expected, then your original program has some kind of flaw which is affecting the output. Also in such case, a lot more info would be needed.
|
|
|
|
|
no you're wrong. If I put CHR(13) and chr(10) once , I will get a text without any linefeed.
Only when I use these char twice I get :
This is line 1.
This is line 2.
|
|
|
|
|
I've tried to ask this many times. Does this happen with the test program I provided?
|
|
|
|
|
If you are wondering why you were downvoted, then you should reread your entire thread.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
If i have deserved , then thank you for downvoted .
My primary goal is to understand the problems I have described here.
|
|
|
|
|
satc wrote: My primary goal is to understand the problems I have described here. Instead of asking whether someone is qualified to answer - ask for details, more explanation, or an example.
People that are attacked usually don't like to help, and it often results in threads with a lot of unfriedly messages.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
ok , I see that you want more to speak for other topics than the question topic.
Can you please , show me what is the phrase that I wrote and has attacked someone ?
And , to not repeat the "possible" mistake , do you have any moral code here that I can read and not make an error anymore?
Thank you !
|
|
|
|
|
satc wrote: ok , I see that you want more to speak for other topics than the question topic. Just the post I replied to.
satc wrote: do you have any moral code here that I can read and not make an error anymore? Same as asking for help in the street.
Any street, any part of the world.
satc wrote: Thank you ! You're welcome
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|