|
satc wrote: I want to put all the 3 lines in a single field ( column )
Yes, and for that you create a single parameter which contains the value.
Consider the following (pseudo-code, not to be compiled)
command AS SqlCommand = new SqlCommand("INSERT INTO MyTable (Col1) VALUES (@colvalue)", connection)
command.Parameters.AddWithValue("@colvalue", "abc cde ght" & vbCrLf & _
"1234 5678" & vbCrLf & _
"567")
command.ExecuteNonQuery()
In the example above, a single row is created and a single value is inserted into column Col1 and it contains multiple lines.
|
|
|
|
|
Sorry , but I don't use pure SQL to send values to sql server.
I'm using Entity Framework , so I need to format those 3 lines in order to do something like this :
Myobject.Mytext=" ......"
I've tried to put vbcrlf at the end of ach line but doesn't work.
|
|
|
|
|
Entity Framework works in exactly the same way. If you've set your property correctly:
Myobject.Mytext = "abc cde ght" & vbCrLf & "1234 5678" & vbCrLf & "567"
then the value in SQL will include the line breaks. If you're not seeing the line breaks, then that's a problem with how the data is displayed.
For example, if you're looking at the value in the grid of query results in SQL Management Studio, the line breaks will be shown as two spaces. If you select the value, copy it, and paste it into a text editor, the line breaks will reappear.
If you're displaying the value in a markup language such as HTML, then you'll need to properly encode the output to see the line breaks. HTML ignores carriage returns, and requires a <br> tag instead.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
I've used exactly the same line as you.
But after if I read this value from database , and put into a bound RichTextEdit the line breaks are missing.
|
|
|
|
|
And which "RichTextEdit" control are you using? If it's an ASP.NET control, then it's almost certainly working with HTML, and you'll need to replace the line breaks with <br> tags.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
|
Yes, but which control???
The built-in control is called RichTextBox . You specifically said your control is a RichTextEdit , which isn't the same thing.
You need to specify which control you're using.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
|
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
|
|
|
|