Esempio n. 1
0
        private void picSearch_Click(object sender, EventArgs e)
        {
            if (textName.Text != "")
            {
                flowLayoutPanel1.Controls.Clear();
                string sql    = "select * from qquser where name='" + textName.Text + "'";
                var    reader = mysqlDB.Get(sql);

                if (!reader.HasRows)
                {
                    while (reader.Read())
                    {
                        UserList userList = new UserList();

                        userList.UserName  = reader.GetString("name");  //用户名
                        userList.UserEmail = reader.GetString("email"); //邮箱

                        flowLayoutPanel1.Controls.Add(userList);
                    }
                }
                else
                {
                    MessageBox.Show("无此用户");
                }
            }
            else
            {
                FrmAddUser_Load(null, null);
            }
        }
Esempio n. 2
0
        private void btnLogin_Click(object sender, EventArgs e)
        {
            mysqlDB = new MysqlDB();
            //FrmChat frmChat = new FrmChat("调试");
            //frmChat.Show();
            //sql语句(谨慎使用drop,delete!!!)
            string sql = "SELECT name,pwd FROM qqUser";

            if (TxtUser.Text.Equals(""))
            {
                MessageBox.Show("用户名不能为空");
            }
            else
            {
                var reader = mysqlDB.Get(sql);
                Dictionary <string, string> qqDict = new Dictionary <string, string>();//qq用户密码字典
                if (reader != null)
                {
                    while (reader.Read())
                    {
                        string name = reader.GetString("name");
                        string pwd  = reader.GetString("pwd");
                        qqDict.Add(name, pwd);
                    }

                    if (TxtPas.Text.Equals(""))
                    {
                        MessageBox.Show("密码不能为空");
                    }
                    else
                    {
                        loginName = TxtUser.Text;
                        User.Name = TxtUser.Text;//将登陆名的text创给类的静态字段
                        if (qqDict.ContainsKey(loginName))
                        {
                            if (TxtPas.Text.Equals(qqDict[TxtUser.Text]))
                            {
                                //MessageBox.Show("密码正确");
                                FrmMain frmMain = new FrmMain();
                                frmMain.Show();
                                this.Hide();
                            }
                            else
                            {
                                MessageBox.Show("密码错误");
                            }
                        }
                        else
                        {
                            MessageBox.Show("无此用户名");
                        }
                    }
                }
                else
                {
                    MessageBox.Show("出现网络连接问题");
                }
            }
        }
Esempio n. 3
0
        private void FrmAddUser_Load(object sender, EventArgs e)
        {
            //初始化
            mysqlDB = new MysqlDB();
            string sql    = "select * from qquser where name!='" + FrmLogin.loginName + "'";
            var    reader = mysqlDB.Get(sql);

            while (reader.Read())
            {
                UserList userList = new UserList();

                userList.UserName  = reader.GetString("name");  //用户名
                userList.UserEmail = reader.GetString("email"); //邮箱

                flowLayoutPanel1.Controls.Add(userList);
            }
        }
Esempio n. 4
0
        private void FrmMain_Load(object sender, EventArgs e)
        {
            //初始化全局变量
            mysqlDB      = new MysqlDB();
            dicChatLists = new Dictionary <string, MessageList>();
            dicChats     = new Dictionary <string, List <OneWord> >();
            frmChats     = new Dictionary <string, FrmChat>();


            labName.Text = User.Name;//从类的静态字段中取值
            //从服务器拉取所有与本用户相关的聊天记录,存储到聊天记录字典
            //sql语句(谨慎使用drop,delete!!!)
            string sql = "SELECT * FROM qqchatView WHERE rname='" + loginName + "' OR sname='" + loginName + "' ORDER BY time ASC";

            //接口sql=SELECT * FROM qqchatView WHERE rname='yiki' OR sname='yiki' ORDER BY time ASC

            res = mysqlDB.Get(sql);
            while (res.Read())
            {
                string   _sender   = res.GetString("sname");; //发送者
                string   _receiver = res.GetString("rname");  //接收者
                DateTime _time     = res.GetDateTime("time"); //发送时间
                //_time = _time.AddHours(-8);    //加时间(时区转换)
                string  _text = res.GetString("text");        //发送内容
                string  _friend;                              //该条记录的好友昵称
                OneWord word = new OneWord();
                word.Time = _time;
                word.Text = _text;
                if (_sender.Equals(loginName))
                {
                    word.Sender = true;
                    _friend     = _receiver;
                }
                else
                {
                    word.Sender = false;
                    _friend     = _sender;
                }
                if (DicChats.ContainsKey(_friend))
                {
                    DicChats[_friend].Add(word);//该好友目录下增加一条聊天记录
                }
                else
                {//增加一条好友目录
                    List <OneWord> words = new List <OneWord>();
                    words.Add(word);
                    DicChats.Add(_friend, words);
                }
            }

            //将最新一条聊天记录显示到聊天记录列表控件中
            //反向遍历数组
            for (int i = DicChats.Count() - 1; i >= 0; i--)
            {
                var         data        = DicChats.ToArray()[i];
                MessageList messageList = new MessageList();
                messageList.ContactsName    = data.Key.ToString();
                messageList.LastMsg         = data.Value.Last().Text;
                messageList.LastMsgSendTime = data.Value.Last().Time.TimeOfDay.ToString();
                flowLayoutPanelMessage.Controls.Add(messageList);
                dicChatLists.Add(messageList.ContactsName, messageList);
            }
            //创建TCP套接字,发起连接请求
            try
            {
                tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPAddress ipaddress = IPAddress.Parse(serverAdress);
                EndPoint  point     = new IPEndPoint(ipaddress, serverPoint);
                tcpClient.Connect(point); //通过IP和端口号,定位一个要连接到的服务端
                                          //向服务端发送初始化消息以表明自己身份
                DataPack dataPack = new DataPack(loginName, "server", "server", "server");
                tcpClient.Send(FrmChat.DataPackToBytes(dataPack));
                //创建线程,一直接收服务端发来的数据
                ThreadStart _receiveThread = new ThreadStart(receiveThread);
                Thread      _childThread   = new Thread(_receiveThread);
                _childThread.Start();
            }
            catch (Exception) {
                MessageBox.Show("服务器无响应,请稍后再试");
                System.Environment.Exit(0);
            }
        }