Ajax模拟留言

来源:互联网 发布:最新一手收藏品数据 编辑:程序博客网 时间:2024/06/04 08:21
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="登录" onclick="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='发言' onclick='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='发言' onclick='sendDemo();' />");                }                else                {                    Response.Write("用户名或密码错误!");                }            }        }    }