Ajax模拟留言

create table UserInfo
(
 username varchar(20),
 userpwd varchar(20)
)
 
insert into UserInfo values('administrator','123456')
create table ChatInfo
(
   id int identity(1,1)  primary key,
  [name] varchar(20),
   context varchar(20),
   chattime datetime
)


         <add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>

    <system.web>
      <!--防止乱码-->
      <globalization fileEncoding="GB2312" requestEncoding="GB2312" responseEncoding="GB2312"/>

  public class Userinfo
    {
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private string pwd;

        public string Pwd
        {
            get { return pwd; }
            set { pwd = value; }
        }
    }


 

 public class ChatInfo
    {
        private string id;

        public string Id
        {
            get { return id; }
            set { id = value; }
        }
        private string context;

        public string Context
        {
            get { return context; }
            set { context = value; }
        }
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private string time;

        public string Time
        {
            get { return time; }
            set { time = value; }
        }

        public override string ToString()
        {
            return string.Format("{0} 说 {1} 时间{2}", name, context, time);
        }
    }

 

  public class DBHelper
    {
        private SqlConnection sqlconn = null;
        private SqlCommand sqlcmd = null;
        private SqlDataReader sqlread = null;
        private static DBHelper db = null;
        private DBHelper()
        {
            sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlDB"].ToString());

        }
        /// <summary>
        /// 单例
        /// </summary>
        /// <returns></returns>
        public static DBHelper createInstance()
        {
            if (db == null)
            {
                db = new DBHelper();
            }
            return db;
        }
        public bool checkLogin(Userinfo user)
        {
            string sql = string.Format("select count(*) from userinfo where username='{0}' and userpwd='{1}'",user.Name,user.Pwd);
            sqlcmd = new SqlCommand(sql,sqlconn);
            try
            {
                sqlconn.Open();
                return (int)sqlcmd.ExecuteScalar() == 1;
            }
            catch
            {

                return false;
            }
            finally
            {
                sqlconn.Close();
            }
        }
        //发言
        public bool sendChat(ChatInfo chat)
        {
            string sql = string.Format("insert into ChatInfo values('{0}','{1}','{2}')",chat.Context,chat.Name,DateTime.Now.ToString());
            sqlcmd=new SqlCommand(sql,sqlconn);
            try
            {
                sqlconn.Open();
                return sqlcmd.ExecuteNonQuery() > 0;
            }
            catch
            {

                return false;
            }
            finally
            {
                sqlconn.Close();
            }
        }
        //显示
        public List<ChatInfo> GetAllInfo()
        {
            string sql = "select *from Chatinfo order by chattime";
            sqlcmd = new SqlCommand(sql,sqlconn);
            try
            {
                sqlconn.Open();
                sqlcmd = new SqlCommand(sql, sqlconn);
                sqlread = sqlcmd.ExecuteReader();
                List<ChatInfo> list = new List<ChatInfo>();
                while (sqlread.Read())
                {
                    ChatInfo chat = new ChatInfo();
                    chat.Id = sqlread[0].ToString();
                    chat.Context = sqlread[1].ToString();
                    chat.Name = sqlread[2].ToString();
                    chat.Time = sqlread[3].ToString();
                    list.Add(chat);
                }
                return list;
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                sqlconn.Close();
            }
        }
    }
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title></title>
    <script type="text/javascript">
        var xmlHttp;
        function createDemo() {
            if (window.ActiveXObject) {
                var ieArr = ["Msxml2.XMLHTTP.8.0", "Msxml2.XMLHTTP.7.0", "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
                for (var i = 0; i < ieArr.length; i++) {
                    try {
                        xmlHttp = new ActiveXObject(ieArr[i]);
                    }
                    catch (e) { } //抛异常,直到找到合适的版本
                }
            }
            else if (window.XMLHttpRequest) {
                xmlHttp = new XMLHttpRequest();
            }
        }
        //登录
        function doDemo() {
            var name = document.getElementById("txtName").value;
            var pwd = document.getElementById("txtPwd").value;
            if (name.length < 3) {
                alert("用户名不能少于3位!");
             
             
            }
            else if (pwd.length < 6) {
            alert("用户密码不能少于6位!");
           
            }
            else {
                createDemo();
                xmlHttp.onreadystatechange = disDemo; //触发事件
                var url = "WebChat.aspx?name=" + name + "&pwd=" + pwd;
                xmlHttp.open("GET", url, true);
                xmlHttp.send();
            }
            document.getElementById("divDis").innerHTML = "";
           
       
        }
        //发言
        function sendDemo() {
            var chat = document.getElementById("txtChat").value;
            var name = document.getElementById("userName").value;
            if (chat.length == 0) {
                alert("不能空发信息");
            }
            else {
                createDemo();
                //异步请求伴随着5种状态的产生,只有一个事件onreadystatechange发生
                xmlHttp.onreadystatechange = disDemo;
                var url = "InsertDemo.aspx?name=" + name + "&chat=" + chat;
                //加载
                xmlHttp.open("GET", url, true);
                //发送
                xmlHttp.send();
            }
        }
        //显示
        function disDemo() {
            if (xmlHttp.readyState == 4)// 0 - (未初始化)还没有调用send()方法
            //1 - (载入)已调用send()方法,正在发送请求
            // 2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
            //   3 - (交互)正在解析响应内容
            // 4 - (完成)响应内容解析完成,可以在客户端调用了
            {
                if (xmlHttp.status == 200)//编号200表示成功
                {
                //responsetext 以字符串形式返回服务器的响应,responsexml 以XML形式返回服务器的响应
                    document.getElementById("divLogin").innerHTML = xmlHttp.responsetext;
                }
            }
        }
    </script>
</head>
<body>
    <div id="divDis">
    <table border="1" align="center">
        <tr>
            <td colspan="2" align="center">
                用户登录
            </td>
        </tr>
        <tr>
            <td>
                用户名称
            </td>
            <td>
                <input id="txtName" type="text" />
            </td>
        </tr>
        <tr>
            <td>
                用户密码
            </td>
            <td>
                <input id="txtPwd" type="password" />
            </td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <input id="btnLogin" type="button" value="登录" οnclick="doDemo();" />
            </td>
        </tr>
    </table>
    </div>
    <div id="divLogin"></div>
</body>
</html>


  public partial class InsertDemo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            if (!IsPostBack)
            {
                string name = Request["name"];
                string chat = Request["chat"];
                ChatInfo chatInfo = new ChatInfo();
                chatInfo.Name = name;
                chatInfo.Context = chat;
                if (DBHelper.createInstance().sendChat(chatInfo))
                {
                    //Response.Write("发言成功!");
                    Response.Write("欢迎 " + name + "<br/><br/><br/>");
                    Response.Write("<input id='userName' type='hidden' value=" + name + " />");
                    foreach (ChatInfo demo in DBHelper.createInstance().GetAllInfo())
                    {
                        Response.Write(demo.ToString() + "<br/>");
                    }

                    Response.Write("<input id='txtChat' type='text' /><input id='btnSend' type='button' value='发言' οnclick='sendDemo();' />");
                }
                else
                {
                    Response.Write("发言失败!");
                }

            }
        }
    }


 public partial class WebChat : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string name = Request["name"];
                string pwd = Request["pwd"];
                Userinfo user = new Userinfo();
                user.Name = name;
                user.Pwd = pwd;
                if (DBHelper.createInstance().checkLogin(user))
                {
                    Response.Write("欢迎 " + name + "<br/><br/><br/>");
                    Response.Write("<input id='userName' type='hidden' value=" + name + " />");
                    foreach (ChatInfo chat in DBHelper.createInstance().GetAllInfo())
                    {
                        Response.Write(chat.ToString() + "<br/>");
                    }
                    Response.Write("<input id='txtChat' type='text' /><input id='btnSend' type='button' value='发言' οnclick='sendDemo();' />");
                }
                else
                {
                    Response.Write("用户名或密码错误!");
                }
            }
        }
    }



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值