日期:2014-05-16 浏览次数:20600 次
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Web;
using System.Web.UI.WebControls;
namespace TraceLWord1.WebUI
{
public partial class PostLWord : System.Web.UI.Page
{
// 用户昵称
protected System.Web.UI.WebControls.TextBox m_aspNickName;
// 用户密码
protected System.Web.UI.WebControls.TextBox m_aspPassWord;
// 留言内容
protected System.Web.UI.WebControls.TextBox m_aspTextContent;
// 发送命令按钮
protected System.Web.UI.WebControls.Button m_aspPostCmd;
protected void Page_Init(object sender, EventArgs e)
{
this.m_aspPostCmd.Click += new EventHandler(PostCmd_Click);
}
// 获取注册用户信息
private const string SQL_GetRegUser = @"SELECT * FROM [RegUser] WHERE [NickName] = @NickName";
// 注册新用户
private const string SQL_Register = @"INSERT INTO [RegUser] ( [NickName], [PassWord] ) VALUES ( @NickName, @PassWord )";
// 发送新留言
private const string SQL_PostLWord = @"INSERT INTO [LWord] ( [FromUser], [TextContent] ) VALUES ( @FromUser, @TextContent )";
// 发送留言信息到数据库
private void PostCmd_Click(object sender, EventArgs e)
{
// 获取用户昵称
string nickName = this.m_aspNickName.Text;
// 获取用户密码
string passWord = this.m_aspPassWord.Text;
// 获取留言内容
string textContent = this.m_aspTextContent.Text;
// 用户昵称和密码不能为空
if (String.IsNullOrEmpty(nickName) || String.IsNullOrEmpty(passWord))
throw new Exception("用户昵称或密码为空");
// 留言内容不能为空
if (String.IsNullOrEmpty(textContent))
throw new Exception("留言内容为空");
// 用户是否已注册
bool isRegistered = false;
// 存于数据库中的用户密码
string passWordInDB = null;
//创建数据库链接
OleDbConnection dbConn = new OleDbConnection(ConfigurationManager.ConnectionStrings["TraceLWordDB"].ConnectionString);
//创建数据库命令
OleDbCommand getRegUserDBCmd = new OleDbCommand(SQL_GetRegUser, dbConn);
// 设置用户昵称
getRegUserDBCmd.Parameters.Add("@NickName", OleDbType.VarWChar, 32).Value = nickName;
try
{
dbConn.Open();
OleDbDataReader dr = getRegUserDBCmd.ExecuteReader();
if (dr.Read())
{
isRegistered = true;
// 获取存于数据库中的用户密码
passWordInDB = Convert.ToString(dr["PassWord"]);
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
dbConn.Close();
}
if (isRegistered)
{
// 如果用户已经注册,则比较用户密码
if (String.Compare(passWord, passWordInDB) != 0)
throw new Exception("用户密码错误");
// 如果密码相同则添加留言信息
//
OleDbCommand postLWordDBCmd = new OleDbCommand(SQL_PostLWord, dbConn);
// 设置留言发送人昵称
postLWordDBCmd.Parameters.Add("@FromUser", OleDbType.VarWChar, 32).Value = nickName;
// 设置留言内容
postLWordDBCmd.Parameters.Add("@TextContent", OleDbType.LongVarWChar).Value = textContent;
try
{
dbConn.Open();
postLWordDBCmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
dbConn.Close();
}
}
else
{
// 如果用户未注册,那么先注册新用户,然后添加留言
//
dbConn.Open();
try
{
OleDbCommand registerDBCmd = new OleDbCommand(SQL_Register, dbConn);
// 设置用户昵称
registerDBCmd.Parameters.Add("@NickName", OleDbType.VarWChar, 32).Value = nickName;
// 设置用户密码
registerDBCmd.Parameters.Add("@PassWord", OleDbType.VarWChar, 255).Value = passWord;
registerDBCmd.ExecuteNonQuery();
OleDbCommand postLWordDBCmd = new OleDbCommand(SQL_PostLWord, dbConn);
// 设置留言发送人昵称
postLWordDBCmd.Parameters.Add("@FromUser", OleDbType.VarWChar, 32).Value = nickName;
// 设置留言内容
postLWordDBCmd.Parameters.Add("@TextContent", OleDbType.LongVarWChar).Value = textContent;
postLWordDBCmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
dbConn.Close();
}
}
// 跳转到留言显示页面
Response.Redirect("ListLWord.aspx", true);
}
}
}
?