Hey, this could go one of two ways. I want a rich text editor for my website, the information typed into the text editor will be saved to an sql server database under either char or varchar format that supports up to 8000 characters per field. I want it to save as html code. This content will then be pulled from the database to be displayed in a label. Now my question is, what is a good vb .net html rich text editor (must be free) OR how can I make one for vb .net (preferred).

Thanks guys, Slade.

FreeTextBox. The one, the only, the best, free ASP.NET rich text box. Everyone uses this one; from the ASP.NET Forums to DotNetNuke.

And, by the way, consider using the ntext datatype to store it in SQL Server. You'll have enough room for 1073741823 characters, and it will be able to store unicode values.

thats my problem Tek, I don't know how to work with text data types in a stored procedure and thats what I'm using to write to the table :( I really want to be able to do it though....

Well, paste me whatcha got, and I'll help ya out ;-). By the way, stored procedures are the way to go when your working with web databases. They prevent nasty SQL Injection attacks, and are faster ;-). #Portal has over 150 stored procedures.

Thanks Tekmaven, I'll post my t-sql code when I get home... and give you a little more info on what I need it to do. By the way, I'm thinking of installing the beta version of the asp .net forums... is it worth it? How long until it goes official?

Thanks Tekmaven, I'll post my t-sql code when I get home... and give you a little more info on what I need it to do. By the way, I'm thinking of installing the beta version of the asp .net forums... is it worth it? How long until it goes official?

2.0 is nearly done, all thats missing is the 1.0 importer and language translations (i think... hehe.. but I do talk to one of the main developers a lot, and he's told me of some cooool stuff comming in 2.1..). And by the way, its not called the ASP.NET Forums anymore (to my surprise.. lol), its called Community Server, and its managed by »Telligent Systems, Inc. (the company which all the main Forums developers work for now ;) ). Cool stuff :p .

Sorry it's taken me so long to reply but I haven't been abel to get to my code, I'm flat out. So I'll just give you an example of what I'm trying to do:

I created this application at work, but it uses the same technique I'm trying to use on my website with the text data type... it just isn't working.

my TSQL

CREATE procedure JobAdd
@PositionTitle nvarchar(50),
@ReferenceNo nvarchar(10),
@Location nvarchar(30),
@ClosingDate smalldatetime,
@JobDescription nvarchar(1000),
@Requirements nvarchar(1000), 
@Email varchar(75), 
@JobID int output
AS
INSERT INTO JobVacancies
(
PositionTitle,
ReferenceNo,
Location,
ClosingDate,
JobDescription,
Requirements,
Email 
 
)
VALUES
(
@PositionTitle,
@ReferenceNo,
@Location,
@ClosingDate,
@JobDescription,
@Requirements,
@Email 
 
)
SELECT @JobID = @@IDENTITY
GO

Something like that...

My vb .net code

PrivateFunction AddVacancyDetails() As Int32
 
Dim myConnection AsNew SqlConnection(ConfigurationSettings.AppSettings("strSqlConnectionString")) 
Dim myCommand = New SqlCommand("jobAdd", myConnection) 
myCommand.CommandType = CommandType.StoredProcedure 
 
Dim paramPosition As SqlParameter = myCommand.Parameters.Add("@PositionTitle", SqlDbType.NVarChar, 50) 
paramPosition.Value = txtPosition.Text 
 
Dim paramLocation As SqlParameter = myCommand.Parameters.Add("@Location", SqlDbType.NVarChar, 30) 
paramLocation.Value = txtLocation.Text
 
Dim paramClose As SqlParameter = myCommand.Parameters.Add("@ClosingDate", SqlDbType.SmallDateTime) 
paramClose.Value = dtClose.SelectedDate.ToShortDateString()
 
Dim paramRef As SqlParameter = myCommand.Parameters.Add("@ReferenceNo", SqlDbType.NVarChar, 4) 
paramRef.Value = txtRef.Text.ToUpper
 
Dim paramDescription As SqlParameter = myCommand.Parameters.Add("@JobDescription", SqlDbType.NVarChar, 1000) 
If txtJobDescription.Text = "" Then 
paramDescription.Value = DBNull.Value 
Else 
paramDescription.Value = txtJobDescription.Text 
EndIf
 
Dim paramRequirements As SqlParameter = myCommand.Parameters.Add("@Requirements", SqlDbType.NVarChar, 1000) 
If txtReq.Text = "" Then 
paramRequirements.Value = DBNull.Value 
Else 
paramRequirements.Value = txtReq.Text 
EndIf
 
Dim paramEmail As SqlParameter = myCommand.Parameters.Add("@Email", SqlDbType.VarChar, 75) 
Dim at AsString 
at = txtEmail.Text.IndexOf("@") 
If at = -1 Then 
paramEmail.Value = txtEmail.Text & "@goldenwest.org.au" 
Else 
paramEmail.Value = txtEmail.Text 
EndIf
 
Dim paramJobID As SqlParameter = myCommand.Parameters.Add("@JobID", SqlDbType.Int) 
paramJobID.Direction = ParameterDirection.Output 
myConnection.Open() 
myCommand.ExecuteNonQuery() 
Return Convert.ToInt32(paramJobID.Value)
 
EndFunction

This is just an app I made at work but it's the same way I'm trying to make my site except I want to use the text data type for the body :(

The above is to add a new article, I haven't tried that with the text data type because i haven't got past being able to populate the labels on the page with the information from the table. This is what I got for my stored procedure:

TSQL

CREATE procedure jobGetDetails
@JobID int,
@PositionTitle nvarchar(50) output,
@ReferenceNo nvarchar(10) output,
@Location nvarchar(30) output,
@ClosingDate smalldatetime output,
@JobDescription nvarchar(1000) output,
@Requirements nvarchar(1000) output, 
@Email varchar(75) output
 
AS
SELECT
@JobID = JobID,
@PositionTitle = PositionTitle,
@ReferenceNo = ReferenceNo ,
@Location = Location,
@ClosingDate = ClosingDate ,
@JobDescription = JobDescription,
@Requirements = Requirements, 
@Email = Email
FROM JobVacancies
WHERE JobID = @JobID
 
IF @@ROWCOUNT = 0
SET @JobID = 0
GO

I use the same way to populate the page except the other way around e.g.

PrivateSub ShowEdit(ByVal JobID As Int32)
 
Dim myConnection AsNew SqlConnection(ConfigurationSettings.AppSettings("strSqlConnectionString"))
Dim myCommand = New SqlCommand("jobGetDetails", myConnection)myCommand.CommandType = CommandType.StoredProcedure
 
Dim paramJobID As SqlParameter = myCommand.Parameters.Add("@JobID", SqlDbType.Int)
paramJobID.Value = JobID
 
Dim paramPosition As SqlParameter = myCommand.Parameters.Add("@PositionTitle", SqlDbType.NVarChar, 50)
paramPosition.Direction = ParameterDirection.Output

Dim paramRef As SqlParameter = myCommand.Parameters.Add("@ReferenceNo", SqlDbType.NVarChar, 4)
paramRef.Direction = ParameterDirection.Output

Dim paramLocation As SqlParameter = myCommand.Parameters.Add("@Location", SqlDbType.NVarChar, 30)
paramLocation.Direction = ParameterDirection.Output

Dim paramClose As SqlParameter = myCommand.Parameters.Add("@ClosingDate", SqlDbType.SmallDateTime)
paramClose.Direction = ParameterDirection.Output

Dim paramDescription As SqlParameter = myCommand.Parameters.Add("@JobDescription", SqlDbType.NVarChar, 1000)
paramDescription.Direction = ParameterDirection.Output

Dim paramReq As SqlParameter = myCommand.Parameters.Add("@Requirements", SqlDbType.NVarChar, 1000)
paramReq.Direction = ParameterDirection.Output

Dim paramEmail As SqlParameter = myCommand.Parameters.Add("@Email", SqlDbType.VarChar, 75)
paramEmail.Direction = ParameterDirection.Output

myConnection.Open()
myCommand.ExecuteNonQuery()
myConnection.Close()
 
txtPosition.Text = paramPosition.Value
txtRef.Text = paramRef.Value
txtLocation.Text = paramLocation.Value
txtEmail.Text = paramEmail.Value
 
If paramReq.Value Is DBNull.Value Then
txtReq.Text = ""
Else
txtReq.Text = paramReq.Value
EndIf

If paramDescription.Value Is DBNull.Value Then
txtJobDescription.Text = ""
Else
txtJobDescription.Text = paramDescription.Value
EndIf

dtClose.SelectedDate = paramClose.Value
txtEmail.Text = txtEmail.Text.Remove(txtEmail.Text.IndexOf("@"), 18)
 
If dtClose.SelectedDate < dtClose.TodaysDate Then
lblStatus.Text = "Status:" & "&nbsp;" & "Expired Vacancy"
Else
lblStatus.Text = "Status:" & "&nbsp;" & "Current Vacancy"
EndIf
EndSub

What happens is, when I try to create a stored procedure like above, I can't Save it because I get an error telling me I can't use the text data type as an argument.

I know all the code looks daunting lol, but it's not the actual application in question, just the technique I used.

Thanks for all your help tekmaven,

Slade

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.