### 制作在线日记本

随着网络技术的飞速发展，在网络上写日记已成为人们的一种习惯。将每天发生的事，每天的心得体会，每天的心态变化都可以记录到网络日记本。本程序中提供了在线文本编辑器，用户输入留言主题和留言内容，然后单击【提交】按钮即可将留言信息保存到数据库中。同时，对输入的留言内容可以进行编辑，例如设置字体、调整大小、插入图片、插入超链接、设置文字颜色等。

程序运行结果如图 1 所示。

图 1 写日记

#### 关键技术

本程序主要通过 FreeTextBox 组件来实现在线文本编辑的功能。

FreeTextBox 组件是一个免费的.NET 在线文本编辑器，它以.dll 文件格式封装起来，以供用户使用。

用户可以先通过添加引用的方式将该组件引用到程序中，引用完成后，在需要该组件的页面中注册该组件并将该组件添加到合适的位置，注册该组件的代码如下：

<%@ Register TagPrefix="FTB" Namespace="FreeTextBoxControls" Assembly="FreeTextBox" %>

注册组件完成后，需要在合适的位置显示组件，显示组件时编写如下代码：

<FTB:FreeTextBox id="FreeTextBox1" runat="Server"

SupportFolder="aspnet_client/FreeTextBox/" ButtonSet="Office2003"

Height="120px" Width="365px" ImageGalleryPath="../../images/" Language="zh-cn"

DownLevelCols="50" />

注意：

在将 FreeTextBox 中的文本写入到数据库中时，可能提示数据插入时存在危险字符的错误，只需要在 Web.config 配置文件中的<system.web>节中添加如下代码即可解决该问题。

<pages validateRequest="false"/>

#### 实现步骤

下面介绍“制作在线日记本”实例的实现步骤。

（1）新建一个网站，默认主页为 Default.aspx。

（2）右键单击项目名称，在弹出的快捷菜单中选择“添加引用”一项，从打开的“添加引用”对话框中选择“浏览”选项卡，在磁盘中找到 FreeTextBox 组件，将其添加到项目中，“添加引用”完成后，将 FreeTextBox 组件所需的资源文件复制到项目中，这些资源文件包括图片、脚本和配置文件等。本程序放置资源文件的文件夹为 FreeTextBox。

（3）将 FreeTextBox 组件引用到项目中后，在需要该组件的页面中进行注册使用，注册该组件的代码如下：

<%@ Register TagPrefix="FTB" Namespace="FreeTextBoxControls" Assembly="FreeTextBox" %>

（4）在 Default.aspx 页面中添加 1 个 TextBox 控件、1 个已注册的 FreeTextBox 组件、两个 Button 控件，分别用来输入留言主题、编辑文本内容、提交和重置表单内容。

（5）在合适的位置显示 FreeTextBox 组件，显示组件时编写的代码如下：

<FTB:FreeTextBox id="FreeTextBox1" runat="Server"

SupportFolder="aspnet_client/FreeTextBox/" ButtonSet="Office2003"

Height="120px" Width="365px" ImageGalleryPath="../../images/" Language="zh-cn"

DownLevelCols="50" />

（6）在后台文件 Default.aspx.cs 中，编写提交按钮 btnOK 的 Click 事件。在该事件中，首先连接数据库，然后通过执行 Insert Into 语句将获取到的表单数据（留言主题和留言内容）插入到数据库中。代码如下：

protected void btnOK_Click(object sender, EventArgs e)

{

//连接数据库

string Constr = "server=(local);database=db_control;uid=sa;pwd=";

string cmdtxt = "INSERT INTO tb_LeaveWord(Subject,Content,DateTime,IP)";

cmdtxt += " VALUES('" + this.TextBox1.Text + "'";

cmdtxt += ",'" + this.FreeTextBox1.Text + "','" + DateTime.Now + "'";

cmdtxt += ",'" + Request.UserHostAddress + "')";

bool flag = false;

SqlConnection con = new SqlConnection(Constr);

con.Open();

SqlCommand cmd = new SqlCommand(cmdtxt,con);

try

{

//执行 SQL 语句

cmd.ExecuteNonQuery();

flag = true;

}

catch

{

flag = false;

}

finally

{

//释放资源

cmd.Dispose();

con.Close();

}

if (flag)

{

Response.Write("<script language=javascript>alert('添加成功!');location='Default.aspx'</script>");

}

else

{

Response.Write("<script language=javascript>alert('添加失败！');location='javascript:history.go(-1)'</script>");

}

}

说明：

在Default.aspx.cs文件中需引入命名空间System.Data.SqlClient。