• 窗体应用程序防腾讯QQ源码


    窗体应用程序防腾讯QQ源码

      1 using System;
      2 using System.Collections.Generic;
      3 using System.ComponentModel;
      4 using System.Data;
      5 using System.Drawing;
      6 using System.Text;
      7 using System.Windows.Forms;
      8 using Aptech.UI;
      9 using System.Data.SqlClient;
     10 using System.Media;
     11 
     12 namespace MyQQ
     13 {
     14     public partial class MainForm : Form
     15     {
     16         int fromUserId;   // 消息的发起者
     17         int friendFaceId;  // 发消息的好友的头像Id  
     18         int messageImageIndex = 0;  // 工具栏中的消息图标的索引
     19         public static int faceId = 0;        // 头像索引
     20         public MainForm()
     21         {
     22             InitializeComponent();
     23         }
     24 
     25         private void MainForm_Load(object sender, EventArgs e)
     26         {
     27             //初始化皮肤
     28             skinEngine1.SkinFile = "SportsGreen.ssk";
     29             // 显示个人的信息 
     30             timSound.Start();
     31             wenti();
     32             sbFriends.AddGroup("我的好友");
     33             sbFriends.AddGroup("陌生人");
     34             //this.sideBar1.AddGroup("我的好友");
     35             //this.sideBar1.AddGroup("陌生人");
     36 
     37             //this.sideBar1.Groups[0].Items.Add("小红1", 1);
     38             //this.sideBar1.Groups[0].Items.Add("小红2", 1);
     39             //this.sideBar1.Groups[0].Items.Add("小红3", 1);
     40 
     41             //SubItem sit = new SbItem("小花", 80);
     42             //sit.Tag = 1000;
     43             //this.sideBar1.Groups[0].Items.Add(sit);
     44             //查看好友
     45             ADDName();
     46            
     47            this.Left = Screen.PrimaryScreen.WorkingArea.Width-this.Width;
     48            //this.Top = Screen.PrimaryScreen.WorkingArea.Height - this.Width;
     49            //this.Left = Screen.PrimaryScreen.WorkingArea.Width - this.Height;
     50             
     51         }
     52 
     53         private void ADDName()
     54         {
     55             //清空信息
     56             sbFriends.Groups[0].Items.Clear();
     57             //创建sql语句(实现查询)
     58             string sql = string.Format(
     59                 "SELECT FriendId,NickName,FaceId FROM Users,Friends WHERE Friends.HostId={0} AND Users.Id=Friends.FriendId",
     60                 UserHelper.loginId);
     61             //执行try块语句
     62             try
     63             {
     64                 //创建command对象
     65                 SqlCommand command = new SqlCommand(sql, DBHelper.connection);
     66                 if (DBHelper.connection.State!= ConnectionState.Open)
     67                 {
     68                     DBHelper.connection.Open();//打开数据库连接
     69                 }
     70                 //使用变量reader来存取执行命令后的值
     71                 SqlDataReader reader = command.ExecuteReader();
     72                 //循环使用Read()方法
     73                 while (reader.Read())
     74                 {
     75                     //创建item对象(使用到ListView控件)
     76                     SbItem item = new SbItem((string)reader["NickName"], (int)reader["FaceId"]);
     77                     item.Tag = reader["FriendId"];//使用Tag临时变量来存取FrienId该列的值
     78                     sbFriends.Groups[0].Items.Add(item);//执行显示(从下标0开始)
     79 
     80                 }
     81                 reader.Close();//关闭reader()
     82             }
     83             catch (Exception ex)
     84             {
     85                 //提示错误信息
     86                 MessageBox.Show(ex.Message);
     87             }
     88             finally
     89             {
     90                 //关闭数据库连接
     91                 DBHelper.connection.Close();
     92             }
     93         }
     94         private string wenti()
     95         {
     96             string nickName = "";  // 昵称
     97            
     98             bool error = false;    // 标识是否出现错误
     99 
    100             // 取得当前用户的昵称、头像(实现查询)
    101             string sql = string.Format(
    102                 "SELECT NickName, FaceId FROM Users WHERE Id={0}",
    103                 UserHelper.loginId);
    104             //执行try块语句
    105             try
    106             {
    107                 // 创建command对象
    108                 SqlCommand command = new SqlCommand(sql, DBHelper.connection);
    109                 //打开数据库连接
    110                 DBHelper.connection.Open();
    111                 //执行command命令
    112                 SqlDataReader dataReader = command.ExecuteReader();
    113                 //循环使用Read()方法
    114                 if (dataReader.Read())
    115                 {
    116                     if (!(dataReader["NickName"] is DBNull))  // 判断数据库类型是否为空
    117                     {
    118                         nickName = Convert.ToString(dataReader["NickName"]);
    119                     }
    120                     //使用变量faceId来存取数据类型转换后的值
    121                     faceId = Convert.ToInt32(dataReader["FaceId"]);
    122                 }
    123                 //关闭dataReader()
    124                 dataReader.Close();
    125             }
    126             catch (Exception ex)
    127             {
    128                 //提示错误信息
    129                 error = true;
    130                 Console.WriteLine(ex.Message);
    131             }
    132             finally
    133             {
    134                 //关闭数据库连接
    135                 DBHelper.connection.Close();
    136             }
    137 
    138             // 根据操作数据库结果进行不同的操作
    139             if (error)
    140             {
    141                 //提示用户信息
    142                 MessageBox.Show("服务器请求失败!请重新登录!", "意外错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
    143                 Application.Exit();//退出当前应用程序
    144             }
    145             else
    146             {
    147                 // 在窗体标题显示登录的昵称、号码
    148                 this.Text = UserHelper.loginId.ToString();
    149                 this.picboName.Image = imglstBig.Images[faceId];
    150                 this.label1.Text = string.Format("{0}({1})", nickName, UserHelper.loginId.ToString());
    151 
    152             }
    153             return sql;
    154         }
    155 
    156         private void tsmiView_Click(object sender, EventArgs e)
    157         {
    158             if (sbFriends.View == SbView.LargeIcon)
    159             {
    160                 sbFriends.View = SbView.SmallIcon;
    161                 tsmiView.Text = "显示大图像";
    162             }
    163             else if (sbFriends.View == SbView.SmallIcon)
    164             {
    165                 sbFriends.View = SbView.LargeIcon;
    166                 tsmiView.Text = "显示小图像";
    167             }
    168         }
    169 
    170         private void sbFriends_ItemDoubleClick(SbItemEventArgs e)
    171         {
    172             ChatForm chat = new ChatForm();
    173             chat.friendId = Convert.ToInt32(e.Item.Tag); // 号码
    174             chat.nickName = e.Item.Text;  // 昵称
    175             chat.faceId = e.Item.ImageIndex;  // 头像
    176             timer2.Stop();//点击收取信息后图片停止换取
    177             timer1.Stop();
    178             chat.Show();
    179         }
    180 
    181         private void picboName_Click(object sender, EventArgs e)
    182         {
    183             PersonalInfoForm face = new PersonalInfoForm();
    184             face.Show();
    185         }
    186 
    187         private void timer1_Tick(object sender, EventArgs e)
    188         {
    189             
    190             
    191             
    192         }
    193 
    194         private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
    195         {
    196             Application.Exit();
    197         }
    198 
    199         private void toolStripMenuItem3_Click(object sender, EventArgs e)
    200         {
    201             skinEngine1.SkinFile = "SportsGreen.ssk";
    202             label1.ForeColor =Color.BlueViolet;
    203             sbFriends.ForeColor = Color.BlanchedAlmond;
    204             sbFriends.GroupHeaderBackColor = Color.Green;
    205             sbFriends.BackColor = Color.SpringGreen;
    206         }
    207 
    208         private void 黑色ToolStripMenuItem_Click(object sender, EventArgs e)
    209         {
    210             skinEngine1.SkinFile = "SteelBlack.ssk";
    211             label1.ForeColor = Color.White;
    212             sbFriends.ForeColor = Color.Black;
    213             sbFriends.GroupHeaderBackColor = Color.Black;
    214             sbFriends.BackColor = Color.Gray;
    215         }
    216 
    217         private void 橙色ToolStripMenuItem_Click(object sender, EventArgs e)
    218         {
    219             skinEngine1.SkinFile = "SportsOrange.ssk";
    220             label1.ForeColor = Color.Black;
    221             sbFriends.ForeColor = Color.White;
    222             sbFriends.GroupHeaderBackColor = Color.Orange;
    223             sbFriends.BackColor = Color.HotPink;
    224         }
    225 
    226         private void toolStripButton2_Click(object sender, EventArgs e)
    227         {
    228 
    229             SearchFriendForm Search = new SearchFriendForm();
    230             Search.Show();
    231         }
    232 
    233         private void tsbSound_Click(object sender, EventArgs e)
    234         {
    235 
    236             timer1.Stop();  // 消息timer停止运行
    237             // 图片恢复正常
    238             messageImageIndex = 0;
    239             tsbSound.Image = imageList1.Images[messageImageIndex];
    240 
    241             string sql = string.Format("select FromUserId from dbo.Messages where MessageState = 0 and MessageTypeId = 2  and ToUserId ={0}", UserHelper.loginId);
    242 
    243 
    244             SqlCommand command = new SqlCommand(sql, DBHelper.connection);
    245             DBHelper.connection.Open();
    246             int FromUserId = Convert.ToInt32(command.ExecuteScalar());
    247 
    248             DBHelper.connection.Close();
    249             RequestForm request = new RequestForm();
    250             request.Show();
    251 
    252         }
    253         //系统信息,喇叭闪动
    254         private void timer1_Tick_1(object sender, EventArgs e)
    255         {
    256             messageImageIndex = messageImageIndex == 0 ? 1 : 0;//如果messageImageIndex为0就将1赋给它,否则就将0赋给他
    257             tsbSound.Image = imageList1.Images[messageImageIndex];
    258 
    259             SoundPlayer soundPlay = new SoundPlayer("system.wav");
    260             soundPlay.Play();
    261 
    262         }
    263         /// <summary>
    264         /// 读取数据库消息启动计时器
    265         /// </summary>
    266         /// <param name="sender"></param>
    267         /// <param name="e"></param>
    268         private void timSound_Tick(object sender, EventArgs e)
    269         {
    270 
    271         }
    272         /// <summary>
    273         /// 更新陌生人列表
    274         /// </summary>        
    275         private void UpdateStranger(int loginId)
    276         {
    277             // 选出这个人的基本信息
    278             string sql = "SELECT NickName, FaceId FROM Users WHERE Id=" + loginId;
    279             bool error = false; // 用来标识是否出现错误
    280             try
    281             {
    282                 SqlCommand command = new SqlCommand(sql, DBHelper.connection);
    283                 DBHelper.connection.Open();
    284                 SqlDataReader dataReader = command.ExecuteReader(); // 查询
    285                 if (dataReader.Read())
    286                 {
    287                     SbItem item = new SbItem((string)dataReader["NickName"], (int)dataReader["FaceId"]);
    288                     item.Tag = this.fromUserId;           // 将Id记录在Tag属性中
    289                     sbFriends.Groups[1].Items.Add(item);  // 向陌生人组中添加项
    290                 }
    291                 sbFriends.VisibleGroup = sbFriends.Groups[1];  // 设定陌生人组为可见组
    292             }
    293             catch (Exception ex)
    294             {
    295                 error = true;
    296                 Console.WriteLine(ex.Message);
    297             }
    298             finally
    299             {
    300                 DBHelper.connection.Close();
    301             }
    302 
    303             // 出错了
    304             if (error)
    305             {
    306                 MessageBox.Show("服务器出现意外错误!", "抱歉", MessageBoxButtons.OK, MessageBoxIcon.Error);
    307             }
    308         }
    309         /// <summary>
    310         /// 判断发消息的人是否在列表中
    311         /// </summary>        
    312         private bool HasShowUser(int loginId)
    313         {
    314             bool find = false;  // 表示是否在当前显示出的用户列表中找到了该用户
    315 
    316             // 循环 SideBar 中的2个组,寻找发消息的人是否在列表中
    317             for (int i = 0; i < 2; i++)
    318             {
    319                 for (int j = 0; j < sbFriends.Groups[i].Items.Count; j++)
    320                 {
    321                     if (Convert.ToInt32(sbFriends.Groups[i].Items[j].Tag) == loginId)
    322                     {
    323                         find = true;
    324                     }
    325                 }
    326             }
    327             return find;
    328         }
    329 
    330         private void timer2_Tick(object sender, EventArgs e)
    331         {
    332             // 循环好友列表两个组中的每个item,找到发消息的好友,让他的头像闪烁
    333             for (int i = 0; i < 2; i++)
    334             {
    335                 for (int j = 0; j < sbFriends.Groups[i].Items.Count; j++)
    336                 {
    337                     if (Convert.ToInt32(sbFriends.Groups[i].Items[j].Tag) == this.fromUserId)
    338                     {
    339                         if (sbFriends.Groups[i].Items[j].ImageIndex < 100)
    340                         {
    341                             sbFriends.Groups[i].Items[j].ImageIndex = 100;// 索引为100的图片是一个空白图片
    342                         }
    343                         else
    344                         {
    345                             sbFriends.Groups[i].Items[j].ImageIndex = this.friendFaceId;
    346                         }
    347                         sbFriends.Invalidate();  // 重新绘制,只要告诉学生需要这句话才能正常闪烁头像就行
    348 
    349                     }
    350                 }
    351             }
    352             SoundPlayer sound = new SoundPlayer("msg.wav");
    353             sound.Play();
    354 
    355         }
    356 
    357         private void sbFriends_Load(object sender, EventArgs e)
    358         {
    359 
    360         }
    361 
    362         private void timSound_Tick_1(object sender, EventArgs e)
    363         {
    364             ADDName();     // 刷新好友列表
    365             int messageTypeId = 1;  // 消息类型
    366             int messageState = 1;   // 消息状态
    367 
    368             // 找出未读消息对应的好友Id
    369             string sql = string.Format(
    370                 "SELECT Top 1 FromUserId, MessageTypeId, MessageState FROM Messages WHERE ToUserId={0} AND MessageState=0", UserHelper.loginId);
    371             SqlCommand command;
    372             try
    373             {
    374                 command = new SqlCommand(sql, DBHelper.connection);
    375                 if (DBHelper.connection.State != ConnectionState.Open)
    376                 {
    377                     DBHelper.connection.Open(); 
    378                 }
    379                 SqlDataReader dataReader = command.ExecuteReader();
    380 
    381                 // 循环读出一个未读消息
    382                 if (dataReader.Read())
    383                 {
    384                     this.fromUserId = (int)dataReader["FromUserId"];
    385                     messageTypeId = (int)dataReader["MessageTypeId"];
    386                     messageState = (int)dataReader["MessageState"];
    387                 }
    388                 dataReader.Close();
    389             }
    390             catch (Exception ex)
    391             {
    392                 Console.WriteLine(ex.Message);
    393             }
    394             finally
    395             {
    396                 DBHelper.connection.Close();
    397             }
    398 
    399             // 判断消息类型,如果是添加好友消息,就启动喇叭timer,让小喇叭闪烁
    400             if (messageTypeId == 2 && messageState == 0)
    401             {
    402                 // SoundPlayer player = new SoundPlayer("system.wav");
    403                 //player.Play();
    404                 timer1.Start();//启动闪喇叭的计时器
    405             }
    406             // 如果是聊天消息,就启动聊天timer,让好友头像闪烁
    407             else if (messageTypeId == 1 && messageState == 0)
    408             {
    409                 // 获得发消息的人的头像Id
    410                 sql = "SELECT FaceId FROM Users WHERE Id=" + this.fromUserId;
    411                 try
    412                 {
    413                     command = new SqlCommand(sql, DBHelper.connection);
    414                     DBHelper.connection.Open();
    415                     this.friendFaceId = Convert.ToInt32(command.ExecuteScalar());   // 查找到发消息的好友的头像索引
    416                 }
    417                 catch (Exception ex)
    418                 {
    419                     Console.WriteLine(ex.Message);
    420                 }
    421                 finally
    422                 {
    423                     DBHelper.connection.Close();
    424                 }
    425 
    426                 // 如果发消息的人没有在好友列表中就添加到陌生人列表中
    427                 if (!HasShowUser(fromUserId))
    428                 {
    429                     UpdateStranger(fromUserId);
    430                 }
    431                 // SoundPlayer player = new SoundPlayer("msg.wav");
    432                 //player.Play();
    433                 timer2.Start();  // 启动闪烁头像定时器
    434             }
    435         }
    436 
    437         private void toolStripButton1_Click(object sender, EventArgs e)
    438         {
    439             PersonalInfoForm person = new PersonalInfoForm();
    440             person.Show();
    441         }
    442 
    443         private void toolStripButton5_Click(object sender, EventArgs e)
    444         {
    445             Application.Exit();
    446         }
    447 
    448         private void update_Tick(object sender, EventArgs e)
    449         {
    450             //查看好友
    451             ADDName();
    452             wenti();
    453         }
    454 
    455         private void tsmiDelete_Click(object sender, EventArgs e)
    456         {
    457             string FriendId = sbFriends.SeletedItem.Tag.ToString();
    458             sbFriends.SeletedItem.Parent.Items.Remove(sbFriends.SeletedItem);
    459 
    460             string sql = string.Format("delete from dbo.Friends where HostId={0} and FriendId={1}", UserHelper.loginId, FriendId);
    461             SqlCommand com = new SqlCommand(sql, DBHelper.connection);
    462             DBHelper.connection.Open();
    463             int reader = com.ExecuteNonQuery();
    464             if (reader == 1)
    465             {
    466                 MessageBox.Show("成功");
    467             }
    468             else
    469             {
    470                 MessageBox.Show("失败");
    471             }
    472 
    473             DBHelper.connection.Close();
    474         }
    475 
    476         private void tsb_Click(object sender, EventArgs e)
    477         {
    478             ADDName();
    479             wenti();
    480         }
    481 
    482         private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
    483         {
    484             DialogResult res = MessageBox.Show("你确定关吗?", "温馨提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
    485             if (res == DialogResult.OK)
    486             {
    487                 e.Cancel = false;
    488             }
    489             else
    490             {
    491                 e.Cancel = true;
    492             }
    493         }
    494 
    495         private void timer3_Tick(object sender, EventArgs e)
    496         {
    497             headForm();
    498         }
    499 
    500         private void headForm()
    501         {
    502             string nickName = "";
    503             // 取得当前用户的昵称、头像
    504             string sql = string.Format(
    505                 "SELECT NickName, FaceId FROM Users WHERE Id={0}",
    506                 UserHelper.loginId);
    507             try
    508             {
    509                 // 查询
    510                 SqlCommand command = new SqlCommand(sql, DBHelper.connection);
    511                 DBHelper.connection.Open();
    512                 SqlDataReader dataReader = command.ExecuteReader();
    513 
    514                 if (dataReader.Read())
    515                 {
    516 
    517                     nickName = Convert.ToString(dataReader["NickName"]);
    518 
    519                     faceId = Convert.ToInt32(dataReader["FaceId"]);
    520                 }
    521                 dataReader.Close();
    522             }
    523             catch (Exception ex)
    524             {
    525 
    526                 Console.WriteLine(ex.Message);
    527             }
    528             finally
    529             {
    530                 DBHelper.connection.Close();
    531             }
    532 
    533 
    534             // 在窗体标题显示登录的昵称、号码
    535 
    536             this.picboName.Image = imglstBig.Images[faceId];
    537         }
    538 
    539         private void 沉默是金ToolStripMenuItem_Click(object sender, EventArgs e)
    540         {
    541             skinEngine1.SkinFile = "MSN.ssk";
    542         }
    543 
    544         private void MainForm_MouseHover(object sender, EventArgs e)
    545         {
    546 
    547         }
    548 
    549         private void MainForm_MouseMove(object sender, MouseEventArgs e)
    550         {
    551             //this.Left = Screen.PrimaryScreen.WorkingArea.Width-20;
    552             
    553         }
    554         private void MainForm_MouseEnter(object sender, EventArgs e)
    555         {
    556            // if (this.Left == Screen.PrimaryScreen.WorkingArea.Width - 10)
    557            // {
    558                 //this.Left = Screen.PrimaryScreen.WorkingArea.Width - this.Width - 100;
    559            // }
    560            // else
    561            // {
    562                // this.Top = Screen.PrimaryScreen.WorkingArea.Height - 10;
    563             //}
    564              
    565             
    566        
    567             
    568         }
    569 
    570         private void MainForm_MouseLeave(object sender, EventArgs e)
    571         {
    572             
    573         }
    574 
    575         private void MainForm_MouseClick(object sender, MouseEventArgs e)
    576         {
    577             
    578         }
    579     }
    580 }
      1 using System;
      2 using System.Collections.Generic;
      3 using System.ComponentModel;
      4 using System.Data;
      5 using System.Drawing;
      6 using System.Text;
      7 using System.Windows.Forms;
      8 using System.Data.SqlClient;
      9 namespace MyQQ
     10 {
     11     public partial class ChatForm : Form
     12     {
     13         public int friendId;     // 当前聊天的好友号码
     14         public string nickName;  // 当前聊天的好友昵称
     15         public int faceId;       // 当前聊天的好友头像Id 
     16         string messageIdsString = "";  // 消息的Id组成的字符串
     17         string message;         // 消息内容
     18         string messageTime;     // 消息发出的时间
     19         public ChatForm()
     20         {
     21             InitializeComponent();
     22         }
     23 
     24         private void ChatForm_Load(object sender, EventArgs e)
     25         {
     26 
     27             this.Text = string.Format("与{0}聊天中...", nickName); // 设置窗体标题
     28             lblFriend.Text = string.Format("{0}({1})", nickName, friendId); //当前聊天的好友昵称和号码
     29             picFace.Image = ilFace.Images[faceId];
     30 
     31             // 读取所有的未读消息,显示在窗体中
     32             Showview();
     33         }
     34 
     35         private void Showview()
     36         {
     37             string str = string.Format(
     38                 "SELECT Id, Message,MessageTime From Messages WHERE FromUserId={0} AND ToUserId={1} AND MessageTypeId=1 AND MessageState=0",
     39             friendId, UserHelper.loginId);
     40 
     41             try
     42             {
     43                 SqlCommand com = new SqlCommand(str, DBHelper.connection);
     44                 DBHelper.connection.Open();
     45                 SqlDataReader reader = com.ExecuteReader();
     46                 while (reader.Read())
     47                 {
     48                     messageIdsString += Convert.ToString(reader["Id"]) + "_";
     49                     message = Convert.ToString(reader["Message"]);
     50                     messageTime = Convert.ToDateTime(reader["MessageTime"]).ToString();
     51                     txtMessage.Text += string.Format("
    {0}  {1}
      {2}", nickName, messageTime, message);
     52                 }
     53                 reader.Close();
     54             }
     55             catch (Exception ex)
     56             {
     57 
     58                 MessageBox.Show(ex.Message);
     59             }
     60             finally
     61             {
     62                 DBHelper.connection.Close();
     63             }
     64 
     65             if (messageIdsString.Length > 1) //查看Id是否有效
     66             {
     67                 messageIdsString.Remove(messageIdsString.Length - 1);
     68                 NewMethod(messageIdsString, '_');
     69             }
     70         }
     71 
     72         private void NewMethod(string messageIdsString, char separator)
     73         {
     74             string[] chai = messageIdsString.Split(separator);
     75             string sql = "update Messages set MessageState=1 where Id=";
     76             string updateSql;
     77             try
     78             {
     79                 SqlCommand com = new SqlCommand();
     80 
     81                 com.Connection = DBHelper.connection;
     82                 DBHelper.connection.Open();
     83                 foreach (string id in chai)
     84                 {
     85                     if (id != "")
     86                     {
     87                         updateSql = sql + id;
     88                         com.CommandText = updateSql;
     89                         int result = com.ExecuteNonQuery();
     90                     }
     91                 }
     92             }
     93             catch (Exception ex)
     94             {
     95                 MessageBox.Show(ex.Message);
     96 
     97             }
     98             finally
     99             {
    100                 DBHelper.connection.Close();
    101             }
    102         }
    103 
    104         private void btnClose_Click(object sender, EventArgs e)
    105         {
    106             this.Close();
    107         }
    108         private void btnSend_Click(object sender, EventArgs e)
    109         {
    110             //判断txtWrit该控件是否为空,如是提示用户信息
    111             if (txtWrit.Text.Trim() == "")
    112             {
    113                 MessageBox.Show("请输入信息!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    114                 return;
    115             }
    116             //判断数组长度是否大于等于150,如果大于等于150其实用户信息
    117             else if (txtWrit.Text.Trim().Length >= 150)
    118             {
    119                 MessageBox.Show("此消息过长!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    120                 return;
    121             }
    122             //否则,执行try块语句(实现增加信息)
    123             else
    124             {
    125                 try
    126                 {
    127                     //创建sql语句实现增加信息  
    128                     string sql = string.Format(
    129                             "insert into Messages(FromUserId,ToUserId,Message,MessageTypeId,MessageState) values({0},{1},'{2}',1,0)",
    130                             UserHelper.loginId, friendId, txtWrit.Text.Trim());
    131                     //创建command对象
    132                     SqlCommand command = new SqlCommand(sql, DBHelper.connection);
    133                     //打开数据库连接
    134                     DBHelper.connection.Open();
    135                     //执行非查询(增加)命令
    136                     command.ExecuteNonQuery();
    137                 }
    138                 catch (Exception ex)
    139                 {
    140                     //提示错误信息
    141                     MessageBox.Show(ex.Message);
    142                 }
    143                 finally
    144                 {
    145                     //关闭数据库连接
    146                     DBHelper.connection.Close();
    147                 }
    148             }
    149 
    150         }
    151 
    152     }
    153 }
    ChatForm
     1 using System;
     2 using System.Collections.Generic;
     3 using System.ComponentModel;
     4 using System.Data;
     5 using System.Drawing;
     6 using System.Text;
     7 using System.Windows.Forms;
     8 using System.Data.SqlClient;//导入命名空间
     9 namespace MyQQ
    10 {
    11     public partial class FaceForm : Form
    12     {
    13         
    14         public FaceForm()
    15         {
    16             InitializeComponent();
    17         }
    18 
    19         private void butfaceNO_Click(object sender, EventArgs e)
    20         {
    21             DialogResult result = MessageBox.Show("确定要退出吗?","温馨提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
    22             if (result==DialogResult.OK)
    23             {
    24                 this.Close();//执行关闭当前窗体语句块
    25             }
    26             
    27         }
    28 
    29         private void butfaceOK_Click(object sender, EventArgs e)
    30         {
    31             //判断是否选中图像,如果未选中图像点击确定的时候提示用户信息是否退出
    32             if (listface.SelectedItems.Count==0)
    33             {
    34                DialogResult result= MessageBox.Show("确定要退出吗?","温馨提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information);
    35                if (result == DialogResult.OK)
    36                {
    37                    this.Close();//执行关闭当前窗体
    38                }
    39             }
    40             else
    41             {
    42                 //使用变量faceIds来存取选中的该图片
    43                 int faceIds = listface.SelectedItems[0].ImageIndex;
    44 
    45 
    46                 try
    47                 {
    48                     //创建sql语句(更新语句)
    49                     string sql = string.Format(
    50                                "update Users set FaceId={0} where Id={1}",
    51                                faceIds, UserHelper.loginId);
    52                     //创建command对象
    53                     SqlCommand command = new SqlCommand(sql, DBHelper.connection);
    54                     //打开数据库连接
    55                     DBHelper.connection.Open();
    56                     //执行非查询命令(更新)
    57                     int result = command.ExecuteNonQuery();
    58                     if (result > 0)
    59                     {
    60                         MessageBox.Show("操作成功!");//提示用户信息操作成功
    61                     }
    62                     else
    63                     {
    64                         MessageBox.Show("操作失败!");//提示用户信息操作失败
    65                     }
    66                 }
    67                 catch (Exception ex)
    68                 {
    69 
    70                     MessageBox.Show(ex.Message);//提示错误信息
    71                 }
    72                 finally
    73                 {
    74                     DBHelper.connection.Close();//关闭数据库连接
    75                 }
    76                
    77             }
    78            
    79         }
    80 
    81         private void FaceForm_Load(object sender, EventArgs e)
    82         {
    83             //执行在加载的时候显示信息(ListView控件)
    84             for (int i = 0; i < ilFaces.Images.Count; i++)
    85             {
    86                 //执行增加项语句块(从下标为0开始进行显示)
    87                 listface.Items.Add(i.ToString());
    88                 listface.Items[i].ImageIndex = i;
    89 
    90 
    91             }
    92         }
    93     }
    94 }
    FaceForm
      1 using System;
      2 using System.Collections.Generic;
      3 using System.ComponentModel;
      4 using System.Data;
      5 using System.Drawing;
      6 using System.Text;
      7 using System.Windows.Forms;
      8 using System.Data.SqlClient;//导入命名空间
      9 namespace MyQQ
     10 {
     11     public partial class RegisterForm : Form
     12     {
     13         string sex = "";//声明一个成员变量并且初始化
     14         
     15         
     16         public RegisterForm()
     17         {
     18             InitializeComponent();
     19         }
     20 
     21         private void button2_Click(object sender, EventArgs e)
     22         {
     23             this.Close();
     24         }
     25 
     26         private void button1_Click(object sender, EventArgs e)
     27         {
     28             
     29             if (rbt.Checked)
     30             {
     31                 sex="";
     32                 Register();
     33             }
     34             else
     35             {
     36                 sex="";
     37                 Register();
     38             }
     39 
     40         }
     41 
     42         private void Register()
     43         {
     44             if (tbopwd1.Text == tbopwd.Text)
     45             {
     46                 int star = 0;
     47                 int boo = 0;
     48                 switch (BooldStyle.Text)
     49                 {
     50                     case "A型":
     51                         boo = 1;
     52                         break;
     53                     case "B型":
     54                         boo = 2;
     55                         break;
     56                     case "O型":
     57                         boo = 3;
     58                         break;
     59                     default:
     60                         boo = 4;
     61                         break;
     62                 }
     63                 switch (Star.Text)
     64                 {
     65                     case "白羊座":
     66                         star = 1;
     67                         break;
     68                     case "双子座":
     69                         star = 3;
     70                         break;
     71                     case "巨蟹座":
     72                         star = 4;
     73                         break;
     74                     case "狮子座":
     75                         star = 5;
     76                         break;
     77                     case "处女座":
     78                         star = 6;
     79                         break;
     80                     case "天秤座":
     81                         star = 7;
     82                         break;
     83                     case "天蝎座":
     84                         star = 8;
     85                         break;
     86                     case "射手座":
     87                         star = 9;
     88                         break;
     89                     case "摩羯座":
     90                         star = 10;
     91                         break;
     92                     case "水瓶座":
     93                         star = 11;
     94                         break;
     95                     case "双鱼座":
     96                         star = 12;
     97                         break;
     98                     default:
     99                         star = 2;
    100                         break;
    101                 }
    102 
    103                 try
    104                 {
    105                     string sql = string.Format("insert into dbo.Users(Age,Sex,LoginPwd,NickName,Name,StarId,BloodTypeId) values({0},'{1}','{2}','{3}','{4}','{5}',{6})", tboAge.Text, sex, tbopwd.Text, tboName.Text, ming.Text, star, boo);
    106                     SqlCommand command = new SqlCommand(sql, DBHelper.connection);
    107                     DBHelper.connection.Open();
    108                     int result = command.ExecuteNonQuery();
    109                     if (result == 1)
    110                     {
    111                         //查询新增加的记录的标识号的代码
    112                         sql = "select @@Identity from Users";
    113                         command.CommandText = sql;      //新增指定command对象的SQL语句
    114 
    115                         //执行查询语句
    116                         int num = Convert.ToInt32(command.ExecuteScalar());
    117                         string a = string.Format("注册成功!你的MyQQ号是{0}", num);
    118                         MessageBox.Show(a, "注册成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
    119                         this.Close();
    120                     }
    121 
    122 
    123                 }
    124                 catch (Exception ex)
    125                 {
    126 
    127                     MessageBox.Show(ex.Message);
    128                 }
    129                 finally
    130                 {
    131                     DBHelper.connection.Close();
    132                 }
    133             }
    134             else
    135             {
    136                 MessageBox.Show("你的两次密码输入不相同!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    137 
    138             }
    139         }
    140 
    141   
    142     }
    143 }
    RegisterForm
      1 using System;
      2 using System.Collections.Generic;
      3 using System.ComponentModel;
      4 using System.Data;
      5 using System.Drawing;
      6 using System.Text;
      7 using System.Windows.Forms;
      8 using System.Data.SqlClient;
      9 namespace MyQQ
     10 {
     11     public partial class SearchFriendForm : Form
     12     {
     13         bool a = false;//声明一个布尔型的变量a并初始值设为false
     14         private DataSet dataset = new DataSet();//创建datasSet对象
     15         private SqlDataAdapter adapter;//声明变量adaper
     16 
     17         public SearchFriendForm()
     18         {
     19             InitializeComponent();
     20         }
     21 
     22         /// <summary>
     23         /// 点击查找的事件
     24         /// </summary>
     25         private void btnSerch_Click_1(object sender, EventArgs e)
     26         {
     27             panel1.Visible = true;//将panel1设为true(显示)
     28             //创建sql语句(实现查询)
     29             string sql = "select Id,NickName,Age,Sex from Users";
     30             //给变量赋值
     31             adapter = new SqlDataAdapter(sql, DBHelper.connection);
     32             //使用SqlDataAdaper对象的Fill()方法进行填充
     33             adapter.Fill(dataset);
     34             //执行显示(下标从0开始)
     35             dtVsearch.DataSource = dataset.Tables[0];
     36 
     37 
     38 
     39             if (tabSearch.SelectedIndex == 0)
     40             {
     41 
     42                 //精确查找
     43                 rigorSearch();
     44             }
     45             else
     46             {
     47                 //高级查找
     48                 AdvancedSearch();
     49 
     50             }
     51         }
     52         /// <summary>
     53         /// 点击加为好友的事件
     54         /// </summary>
     55         private void btnAdd_Click(object sender, EventArgs e)
     56         {
     57             //要加朋友的QQ号码
     58             int friendId = searchID();
     59             //判断是否已被加
     60             a = HasAdded(friendId);
     61 
     62             //好友策略
     63             //count等于1:允许任何人加我为好友
     64             //count等于2:需要身份验证才能加我为好友
     65             //count等于3:不允许任何人加我为好友              
     66             int count = tactic(friendId);
     67             if (friendId==UserHelper.loginId)
     68             {
     69                 MessageBox.Show("不可以加自己为好友");
     70             }
     71             //可以直接加
     72             else if (a == false && count == 1)
     73             {
     74                 MessageBox.Show("添加成功");
     75                 //添加操作
     76                 addFriendId(friendId);
     77 
     78             }
     79             else if (a == false && count == 2)
     80             {
     81                 MessageBox.Show("对方需要验证,验证消息已发出");
     82                 if (friendId!=UserHelper.loginId)
     83                 {
     84                      tacticres(friendId);
     85                 }                
     86             //验证添加
     87             }
     88             else if (a == true)
     89             {
     90                 MessageBox.Show("已是你的好友了");
     91             }
     92             else
     93             {
     94                 MessageBox.Show("添加失败,对方不应许任何人加为好友");
     95             }
     96         }
     97         /// <summary>
     98         /// 点击上一步的事件
     99         /// </summary>
    100         private void btnBack_Click(object sender, EventArgs e)
    101         {
    102             this.panel1.Visible = false;//将panel1初始设为false (不可见)
    103         }
    104         /// <summary>
    105         /// 点击关闭的事件
    106         /// </summary>               
    107         private void butoff_Click(object sender, EventArgs e)
    108         {
    109             this.Close();//关闭当前窗体
    110         }
    111         /// <summary>
    112         /// 点击关闭的事件
    113         /// </summary>         
    114         private void btnClose_Click(object sender, EventArgs e)
    115         {
    116             this.Close();//关闭当前窗体
    117         }
    118 
    119         //高级查找方法
    120         private void AdvancedSearch()
    121         {
    122             //创建sql语句(查询语句)
    123             string sql = "";
    124             sql = "SELECT Id,NickName,Age,Sex FROM Users";
    125             //声明变量初始化和使用变量来存取对应的值
    126             string termComAge = "";
    127             string termComSex = comSex.Text;
    128             //使用switch结构来实现年龄在某个范围内进行运用
    129             switch (comAge.SelectedIndex)
    130             {
    131                 case 1:
    132                     termComAge = " Age>=0 AND Age<10";
    133                     break;
    134                 case 2:
    135                     termComAge = " Age>=10 AND Age<20";
    136                     break;
    137                 case 3:
    138                     termComAge = " Age>=20 AND Age<30";
    139                     break;
    140                 case 4:
    141                     termComAge = " Age>=30 AND Age<40";
    142                     break;
    143                 case 5:
    144                     termComAge = " Age>=40 AND Age<50";
    145                     break;
    146                 case 6:
    147                     termComAge = " Age>=50";
    148                     break;
    149                 default:
    150                     termComAge = "";
    151                     break;
    152             }
    153             //判断如果这两个控件的值如果都为空的话,提示用户相应的信息
    154             if (termComAge == "" && termComSex == "")
    155             {
    156                 MessageBox.Show("你还没有选择的啊??");
    157                 return;
    158             }
    159             //判断如果这两个控件的值如果不为空的话,进行相应的计算
    160             else
    161             {
    162                 if (termComAge != "" && termComSex == "")
    163                 {
    164                     sql += string.Format(" where {0}", termComAge);
    165                 }
    166                 else if (termComAge == "" && termComSex != "")
    167                 {
    168                     sql += string.Format(" where Sex='{0}'", termComSex);
    169                 }
    170                 else
    171                 {
    172                     sql += string.Format(" where {0} AND Sex='{1}'", termComAge, termComSex);
    173                 }
    174 
    175             }
    176             //清空表中的信息
    177             dataset.Tables[0].Clear();
    178             //给变量赋值
    179             adapter = new SqlDataAdapter(sql, DBHelper.connection);
    180             //使用SqldataAdaper对象的fill()方法进行填充
    181             adapter.Fill(dataset);
    182             //执行显示语句块(并且下标从0开始)
    183             dtVsearch.DataSource = dataset.Tables[0];
    184         }
    185         //精确查找方法
    186         private void rigorSearch()
    187         {
    188             //创建sql语句块(实现查询)
    189             string sql = "";
    190 
    191             sql = "SELECT Id,NickName,Age,Sex FROM Users";
    192 
    193             if (radexactitude.Checked == true)
    194             {
    195                 if (friendQQ.Text == "" && friendName.Text == "")
    196                 {
    197 
    198                     //MessageBox.Show("你还没有填条件的啊@ !@");
    199                 }
    200                 else if (friendQQ.Text != "" && friendName.Text == "")
    201                 {
    202                     sql += string.Format(" where ID={0}", int.Parse(friendQQ.Text.Trim()));
    203                 }
    204                 else
    205                 {
    206                     sql += string.Format(" where NickName like '%{0}%'", friendName.Text);
    207                 }
    208             }
    209             //清空表中的信息
    210             dataset.Tables[0].Clear();
    211             //给变量赋值
    212             adapter = new SqlDataAdapter(sql, DBHelper.connection);
    213             //使用SqldataAdaper对象的fill()方法进行填充
    214             adapter.Fill(dataset);
    215             //执行显示语句块(并且下标从0开始)
    216             dtVsearch.DataSource = dataset.Tables[0];
    217         }
    218         //发送验证请求方法
    219         private int tacticres(int friendId)
    220         {
    221             int result = 0; // 操作结果
    222             string sql = string.Format("INSERT INTO Messages (FromUserId, ToUserId, MessageTypeId, MessageState) VALUES ({0},{1},{2},{3})",
    223                 UserHelper.loginId, friendId, 2, 0);
    224             try
    225             {
    226                 // 执行添加操作
    227                 SqlCommand command = new SqlCommand(sql, DBHelper.connection);
    228                 //打开数据库连接
    229                 DBHelper.connection.Open();
    230                 //使用变量result来存取执行命令后的值
    231                 result = command.ExecuteNonQuery();
    232                 if(result>0)
    233                 {
    234                     MessageBox.Show("操作成功!");//提示用户信息操作成功
    235                 }
    236                 else
    237                 {
    238                     MessageBox.Show("操作失败!");//提示用户信息操作失败
    239                 }
    240             }
    241             catch (Exception ex)
    242             {
    243                 //提示错误信息
    244                 MessageBox.Show(ex.Message);
    245             }
    246             finally
    247             {
    248                 //关闭数据库连接
    249                 DBHelper.connection.Close();
    250             }
    251             return result;
    252         }
    253         //添加操作方法
    254         private int addFriendId(int friendId)
    255         {
    256             int result = 0;
    257 
    258             DBHelper.connection.Open();
    259             try
    260             {
    261                 string sql = string.Format("insert into dbo.Friends(HostId,FriendId)values ({0},{1})", UserHelper.loginId, friendId);
    262                 //创建command对象
    263                 SqlCommand command = new SqlCommand(sql, DBHelper.connection);
    264                 //执行命令(使用变量result来存取执行后的值)
    265                result = command.ExecuteNonQuery();
    266             }
    267             catch (Exception ex)
    268             {
    269                 //提示错误信息
    270                 MessageBox.Show(ex.Message);
    271             }
    272             finally
    273             {
    274                 //关闭数据库连接
    275                 DBHelper.connection.Close();
    276             }
    277             return result;
    278         }
    279         //好友策略方法
    280         private int tactic(int friendId)
    281         {
    282             
    283             int count = 0;//声明变量count并且初始化
    284             try
    285             {
    286                 //创建sql语句块(实现查询)
    287                 string sql = string.Format("select FriendshipPolicyId from dbo.Users where id={0}", friendId);
    288                 //创建command对象
    289                 SqlCommand command = new SqlCommand(sql, DBHelper.connection);
    290                 //打开数据库连接
    291                 DBHelper.connection.Open();
    292                 //执行命令(并且使用变量count来存取,在之前也要进行转换为整型)
    293                 count = int.Parse(command.ExecuteScalar().ToString());
    294 
    295 
    296             }
    297             catch (Exception ex)
    298             {
    299                 //提示错误信息
    300                 MessageBox.Show(ex.Message);
    301             }
    302             finally
    303             {
    304                 //关闭数据库连接
    305                 DBHelper.connection.Close();
    306             }
    307             return count;
    308         }
    309         //获取要加的朋友的QQ号码方法
    310         private int searchID()
    311         {
    312             int friendId = 0;
    313 
    314             //当没有选中任何一行
    315             if (dtVsearch.SelectedRows.Count == 0)
    316             {
    317                 MessageBox.Show("请选择一个好友!");
    318             }
    319             //确保第一个单元格有值
    320             else if (dtVsearch.SelectedRows[0].Cells[0] != null)
    321             {
    322                 //获得第一个单元格的值
    323                 friendId = int.Parse(dtVsearch.SelectedRows[0].Cells[0].Value.ToString());
    324 
    325             }
    326             return friendId;
    327         }
    328         //是否已被加的方法
    329         public bool HasAdded(int friendId)
    330         {
    331             //创建sql语句(实现查询)
    332             string sql = string.Format("select id from dbo.Friends where HostId ={0} and FriendId={1}", UserHelper.loginId, friendId);
    333             //打开数据库连接
    334             DBHelper.connection.Open();
    335             //执行try块语句
    336             try
    337             {
    338                 SqlCommand command = new SqlCommand(sql, DBHelper.connection);
    339                 string reader = Convert.ToString(command.ExecuteScalar());
    340                 //不可以加
    341                 if (reader != "")
    342                 {
    343                     this.a = true;
    344                 }
    345                 //可以加    
    346                 else
    347                 {
    348                     this.a = false;
    349                 }
    350 
    351             }
    352             catch (Exception ex)
    353             {
    354                 //提示错误信息
    355                 Console.WriteLine(ex.Message);
    356             }
    357             finally
    358             {
    359                 //关闭数据库连接
    360                 DBHelper.connection.Close();
    361 
    362             }
    363             return a;
    364         }
    365 
    366         private void SearchFriendForm_Load(object sender, EventArgs e)
    367         {
    368 
    369         }
    370 
    371 
    372 
    373 
    374 
    375 
    376     }
    377 }
    SearchFriendForm
  • 相关阅读:
    arm linux kernel 从入口到start_kernel 的代码分析
    Booting ARM Linux
    GNU风格 ARM汇编语法指南
    基于linux2.6.38.8内核启动过程完全解析[一]
    基于linux2.6.38.8内核zImage文件的自解压详解
    Busybox支持中文的解决办法
    对Kernel panic-not syncing:No init found...init=option to kernel错误总结!
    Linux 的启动流程
    计算机是如何启动的?
    Debian的定时执行命令Crontab
  • 原文地址:https://www.cnblogs.com/cykj/p/The-application-form-of-anti-QQ-source-code.html
Copyright © 2020-2023  润新知