深入体验C - 项目开发- 在线留言簿系统 联系客服

发布时间 : 星期三 文章深入体验C - 项目开发- 在线留言簿系统更新完毕开始阅读

第2章 在线留言簿系统

}

try

{ ///打开连接 con.Open(); ///填充数据 da.Fill(ds,\}

catch(Exception ex) { ///抛出异常 throw new Exception(ex.Message,ex); }

finally

{ ///关闭连接 con.Close(); }

return ds;

数据库的设计真的很重要,因为几乎所有的动态Web站点的内容都是基于数据库数据的,所以对数据库的操作应该充分考虑效率问题。在此告诉读者一个小小的建议,建议读者充分利用所在机器内存中缓存的ADO对象。

3. 添加系统留言信息

添加系统留言信息,即将新发布的留言信息添加到系统库中,此功能是由方法AddMessage(string title,string message,string ip,string email)实现的。方法AddMessage(string title,string message,string ip,string email)的具体实现流程如下。

(1) 从系统配置文件Web.config内获取数据库连接参数,并将其保存在connectionString内。

(2) 使用连接字符串创建con对象,实现数据库连接。

(3) 使用SQL添加语句,然后创建cmd对象准备插入操作。 (4) 打开数据库连接,执行新数据插入操作。

(5) 将数据插入操作所涉及的行数保存在result中。 (6) 插入成功则返回result值,失败则返回-1。 上述功能的对应实现代码如下。

public int AddMessage(string title,string message,string ip,string email) { string connectionString = ConfigurationManager.ConnectionStrings [\ SqlConnection con = new SqlConnection(connectionString); ///创建SQL语句 string cmdText = \INTO Message(Title,Message,IP,Email,CreateDate, Status)VALUES(@Title,@Message,@IP,@Email,GETDATE(),0)\ SqlCommand cmd = new SqlCommand(cmdText,con); ///创建参数并赋值 cmd.Parameters.Add(\ cmd.Parameters.Add(\ cmd.Parameters.Add(\

49

深入体验C#项目开发 }

cmd.Parameters.Add(\cmd.Parameters[0].Value = title; cmd.Parameters[1].Value = message; cmd.Parameters[2].Value = ip; cmd.Parameters[3].Value = email; int result = -1; try

{ ///打开连接 con.Open(); ///操作数据 result = cmd.ExecuteNonQuery(); }

catch(Exception ex) { ///抛出异常 throw new Exception(ex.Message,ex); }

finally

{ ///关闭连接 con.Close(); }

return result;

4. 删除系统留言信息

删除系统留言信息即将系统内存在的留言数据从系统库中删除,此功能是由方法DeleteMessage(int messageID)实现的。其具体实现流程如下。

(1) 从系统配置文件Web.config内获取数据库连接参数,并将其保存在connectionString内。 (2) 使用连接字符串创建con对象,实现数据库连接。

(3) 使用SQL删除语句,然后创建cmd对象准备删除操作。 (4) 打开数据库连接,执行新数据删除操作。

(5) 将数据删除操作所涉及的行数保存在result中。 (6) 删除成功则返回result值,失败则返回-1。 上述功能的对应实现代码如下。

public int DeleteMessage(int messageID)

{string connectionString = ConfigurationManager.ConnectionStrings [\ SqlConnection con = new SqlConnection(connectionString); ///创建SQL语句 string cmdText = \ SqlCommand cmd = new SqlCommand(cmdText,con); ///创建参数并赋值 cmd.Parameters.Add(\ cmd.Parameters[0].Value = messageID; int result = -1; try { ///打开连接 con.Open();

50

第2章 在线留言簿系统

}

///操作数据 result = cmd.ExecuteNonQuery(); }

catch(Exception ex) { ///抛出异常 throw new Exception(ex.Message,ex); }

finally

{ ///关闭连接 con.Close(); }

return result;

5. 获取系统内留言回复信息

获取系统内留言回复信息即查询系统库内用户对留言的回复信息数据,此功能是由方法GetReplyByMessage(int messageID)实现的。其具体实现流程如下。

(1) 从系统配置文件Web.config内获取数据库连接参数,并将其保存在connectionString内。

(2) 使用连接字符串创建con对象,实现数据库连接。 (3) 新建查询数据库留言回复数据的SQL查询语句。 (4) 创建获取数据的对象da。

(5) 打开数据库连接,获取查询数据。

(6) 将获取的查询结果保存在ds中,并返回ds。 上述功能的对应实现代码如下。

public DataSet GetReplyByMessage(int messageID) { string connectionString = ConfigurationManager. ConnectionStrings [\ SqlConnection con = new SqlConnection(connectionString); ///创建SQL语句 string cmdText = \* FROM Reply WHERE MessageID = @MessageID Order by CreateDate DESC\ SqlDataAdapter da = new SqlDataAdapter(cmdText,con); ///创建参数并赋值 da.SelectCommand.Parameters.Add(\ da.SelectCommand.Parameters[0].Value = messageID; ///定义DataSet DataSet ds = new DataSet(); try { con.Open(); ///填充数据 da.Fill(ds,\ } catch(Exception ex) {

51

深入体验C#项目开发

}

throw new Exception(ex.Message,ex); }

finally

{ //关闭连接 con.Close(); }

return ds;

6. 添加留言回复信息

添加留言回复信息即将新发布的留言回复信息添加到系统库中,此功能是由方法AddReply(string message,string ip,int messageID)实现的。其具体实现流程如下。

(1) 从系统配置文件Web.config内获取数据库连接参数,并将其保存在connectionString内。

(2) 使用连接字符串创建con对象,实现数据库连接。

(3) 使用SQL添加语句,然后创建cmd对象准备插入操作。 (4) 打开数据库连接,执行新数据插入操作。

(5) 将数据插入操作所涉及的行数保存在result中。 (6) 插入成功则返回result值,失败则返回-1。 上述功能的对应实现代码如下。

public int AddReply(string message,string ip,int messageID) { string connectionString = ConfigurationManager.ConnectionStrings [\ SqlConnection con = new SqlConnection(connectionString); string cmdText = \ MessageID)VALUES(@Reply,@IP,GETDATE(),@MessageID)\ SqlCommand cmd = new SqlCommand(cmdText,con); ///创建参数并赋值 cmd.Parameters.Add(\ cmd.Parameters.Add(\ cmd.Parameters.Add(\ cmd.Parameters[0].Value = message; cmd.Parameters[1].Value = ip; cmd.Parameters[2].Value = messageID; int result = -1; try { ///打开连接 con.Open(); ///操作数据 result = cmd.ExecuteNonQuery(); } catch(Exception ex) { ///抛出异常 throw new Exception(ex.Message,ex); }

52