请各位帮我看看为什么说链接没有关闭呢,以确定是//以下有问题和//以上有问题之间的代码有问题,就是不知道该如何解决啊。。
//监控数据库
        private void tmrDB_Tick(object sender, EventArgs e)
        {
            ShowFriendList();       // 刷新好友列表
            int MessageTypeId = 1;  // 消息类型
            int MessageState = 1;   // 消息状态
            string sql = string.Format("select top 1 Id,FromUserId,MessageTypeId,MessageState from Messages where MessageState=0 and ToUserId={0}", UserHelper.loginId);
            try
            {
                DBhelper.connection.Open();
                DBhelper.datareader = DBhelper.command(sql).ExecuteReader();                
                if (DBhelper.datareader.Read())
                {
                    MessageTypeId = (int)DBhelper.datareader["MessageTypeId"];
                    MessageState = (int)DBhelper.datareader["MessageState"];               
                    fromUserId = (int)DBhelper.datareader["FromUserId"];
                    messageId = (int)DBhelper.datareader["Id"];
                    friendFaceId = GetfriendFaceId(fromUserId);                }
                
                DBhelper.datareader.Close();
            }
            catch (Exception ex)
            {                MessageBox.Show(ex.Message);
            }
            finally {
                DBhelper.connection.Close();
            }            // 如果是添加好友消息让小喇叭闪烁
            if (MessageTypeId == 2)
            {
                SoundPlayer player = new SoundPlayer("system.wav");
                player.Play();
                tmrAddFriend.Start();
            }
            // 如果是聊天消息让好友头像闪烁
            else if (MessageTypeId == 1)
            {
                //以下有问题                
                sql = string.Format("select FaceId from users where Id={0}", fromUserId);
                try
                {
                    DBhelper.connection.Open();
                    friendFaceId = (int)DBhelper.command(sql).ExecuteScalar();
                }
                catch (Exception ex)
                {                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    DBhelper.connection.Close();
                }
                //以上有问题
                
                // 如果发消息的人没有在列表中就添加到陌生人列表中
                if (!isContainInList(fromUserId))
                {
                    AddToStranger(fromUserId);
                }
                SoundPlayer player = new SoundPlayer("msg.wav");
                player.Play();
                tmrface.Start(); 
            }
        }