有一个方法代码如下:
 private string FindUser(string Admin, System.Windows.Forms.ListView LV)//在相应的ListView里查找用户
        {
            try
            {
            foreach (System.Windows.Forms.ListViewItem item in LV.Items)
            {
                if (item.Text == Admin)//找到用户,说明是系统用户,返回它的值
                    return Admin;
            }
           return null;
        }
        catch (Exception e) { return null; }
        }
然后我把return回来的值接受一下
 string TempItem = FindUser(Convert.ToString(dr["admin"]), this.LV_SysUser);
                     MessageBox.Show(TempItem);
TempItem的值死活传递不过来,我用MessageBox.Show(Convert.ToString(dr["admin"]));输出数据库里的这个值,是可以的,但是TempItem的值死活传递不过来,望高手赐教,搞了一天了,郁闷死了。

解决方案 »

  1.   

    可能是哪儿出错了,返回了null
    你去掉try,调试下
      

  2.   

    private   string   FindUser(string   Admin,   System.Windows.Forms.ListView   LV)//在相应的ListView里查找用户 
                    { 
                            try 
                            { 
                            foreach   (System.Windows.Forms.ListViewItem   item   in   LV.Items) 
                            { 
                                    if   (item.Text   ==   Admin)//找到用户,说明是系统用户,返回它的值 
                                            return   Admin; 
                            } 
                          return   null; 
                    } 
                    catch   (Exception   e)   {   return   null;   } 
                    } 
    返回空?
      

  3.   

    去掉try也是一样的,如果把      return       null; 去掉会报错,说什么不是所有的代码路径都返回值
      

  4.   

    昏倒,这个admin是传递的值,不是具体的字符
      

  5.   

     if   (item.Text   ==   Admin)
    你看下这里会不会存在空格的问题
      

  6.   

    把return null放在foreach里面,if下面
      

  7.   

    调试一下看看,Admin和item.Text是不是匹配?是不是有空格之类的问题。
      

  8.   

    不是空格问题我试了
    把return   null放在foreach里面,if下面还是会报错,说什么不是所有的代码路径都返回值
      

  9.   

    试试if(Admin.Trim() == item.Text.Trim())....
      

  10.   

    试了if(Admin.Trim()   ==   item.Text.Trim())....,还是不行,莫非是我人品出了问题?
      

  11.   


            public string FindUser(string Admin, ListView LV)//在相应的ListView里查找用户 
            {
                try
                {
                    foreach (System.Windows.Forms.ListViewItem item in LV.Items)
                    {
                        if (item.Text == Admin)//找到用户,说明是系统用户,返回它的值 
                        {
                            return Admin;
                            break;
                        }
                    }
                    return null;
                }
                catch (Exception e)
                {
                    return null;
                }
            }
      

  12.   

    楼上的大哥,我试了,还是不行,我把所有的都贴出来吧,大家帮忙做个参考呵呵
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.Net.Sockets;
    using server.control;
    namespace server
    {
        public partial class mainForm : Form
        {
            public mainForm()
            {
                InitializeComponent();
            }        private void 关于服务控制程序ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                MessageBox.Show("此为1.0beta版,帅惊动了党倾情制作!");
            }
            //最小化到任务栏
            private void notifyIcon1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
            {        }
            private void notifyIcon1_Click(object sender, EventArgs e)
            {
                this.Visible = true;            this.WindowState = FormWindowState.Normal;            this.notifyIcon1.Visible = false;
            }
            private void notifyIcon1_DoubleClick(object sender, System.EventArgs e)
            {
                this.WindowState = System.Windows.Forms.FormWindowState.Normal;
                this.Show();
                this.Activate();
                this.notifyIcon1.Visible = true;
            }
            private void FormMain_Resize(object sender, System.EventArgs e)
            {
                if (this.WindowState == FormWindowState.Normal)
                {
                    this.Hide();
                    this.notifyIcon1.Visible = true;
                }
            }        private void ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if (ToolStripMenuItemServer.Text == "停止服务")
                {
                    MessageBox.Show("退出前请先关闭服务");
                }
                else
                {
                    this.Close();
                }
            }
            //开始或结束服务
            private void ToolStripMenuItemServer_Click(object sender, EventArgs e)
            {
                if(ToolStripMenuItemServer.Text=="开始服务")
                {
                    ToolStripMenuItemServer.Text = "停止服务";
                    MessageBox.Show("服务已经开始");
                   startServer(true);            }
                else
                {
                    ToolStripMenuItemServer.Text = "开始服务";
                    MessageBox.Show("服务已经停止");
                    startServer(false);            }
            }
           private void startServer(bool isServer)
            {
          
                Int32 port = 13000;
                IPAddress localAddr = IPAddress.Parse("127.0.0.1");
                if (isServer)
                {
                    TcpListener tl = new TcpListener(localAddr, port);
                    tl.Start();
                    TcpClient tc = new TcpClient();
                }
                else
                {
                    TcpListener tl = new TcpListener(localAddr, port);
                    tl.Stop();
                }
               
            }
            //检测在线用户        //处理新用户登陆并添加到列表里
            private void GetMemberUserInfo() //读取数据库中所有用户数据到列表中
            {
                try
                {
                    System.Data.OleDb.OleDbDataReader dr;
                    string SQLstr = "select * from onlineuser where type='企业会员'";
                    dr = new server.control.ClassOptionData().ExSQLReDr(SQLstr);
                    
                    while (dr.Read())
                    {                    string TempItem = FindUser(Convert.ToString(dr["admin"]), this.LV_SysUser);
                         MessageBox.Show(TempItem);
                                            AllOneUserInfoToLV(LV_SysUser, "127.0.0.1", "0", Convert.ToString(dr["admin"]));
                        
                    }
                   
                    dr.Close();            }
                catch (Exception e) { }        }
            private void CheckOnlineSta()
            {
               
            }
            private void AllOneUserInfoToLV(System.Windows.Forms.ListView LV, string IpAddress, string port,string UserName)//'处理新登录用户的信息数据)
            {
                try
                {
                   
                   
                    
                        System.Windows.Forms.ListViewItem NewItem = new ListViewItem();
                       
                        NewItem.SubItems.Add(IpAddress); //'添加用户IP地址信息
                        NewItem.SubItems.Add(port); //  '添加用户端口信息
                        NewItem.SubItems.Add(UserName.Trim());//'添加用户姓名信息
                       
                        LV.Items.Add(NewItem);// '添加此登录用户的所有信息到系统列表中 
                   
                    
                }
                catch (Exception e) { }        }
            public string FindUser(string Admin, ListView LV)//在相应的ListView里查找用户 
            {
                try
                {
                    foreach (System.Windows.Forms.ListViewItem item in LV.Items)
                    {
                        if (item.Text == Admin)//找到用户,说明是系统用户,返回它的值 
                        {
                            return Admin;
                            break;
                        }
                    }
                    return null;
                }
                catch (Exception e)
                {
                    return null;
                }
            }
            //定时更新在线列表
            private void TimerCheckOnlineSta_Tick(object sender, EventArgs e)
            {
                if (ToolStripMenuItemServer.Text == "停止服务")
                {
                GetMemberUserInfo();
            }
            }
        }
    }
      

  13.   

    不是什么疑难杂症
    debug一步一步跟踪即可
      

  14.   

    我的vs版本有问题,不能debug一步步跟踪呵呵
      

  15.   

    直接用string TempItem = Convert.ToString(dr["admin"];呢?
      

  16.   

    目的是调用finduser方法来查找列表里是不是有这个用户,直接用string   TempItem   =   Convert.ToString(dr["admin"];可以输出,但是功能却达不到了呵呵
      

  17.   

    楼主你的listview中的添加项了吗?程序在我这里运行正常.
      

  18.   

    有的,AllOneUserInfoToLV(LV_SysUser, "127.0.0.1", "0", Convert.ToString(dr["admin"]));这个方法就是添加项的,也就是第一次运行因为找不到值所以返回空,然后增加项后,第二次循环,还是空,应该是不为空的呵呵,应该传递过来值的呵呵
      

  19.   

    我没看到你的代码里有FindUser(Admin, LV)的引用啊.....
      

  20.   

    这里while (dr.Read())
                    {                    string TempItem = FindUser(Convert.ToString(dr["admin"]), this.LV_SysUser);
                         MessageBox.Show(TempItem);
                                            AllOneUserInfoToLV(LV_SysUser, "127.0.0.1", "0", Convert.ToString(dr["admin"]));
                        
                    }
      

  21.   


    private void AllOneUserInfoToLV(System.Windows.Forms.ListView LV, string IpAddress, string port, string UserName)//'处理新登录用户的信息数据)
            {
                try
                {
                    System.Windows.Forms.ListViewItem NewItem = new ListViewItem();                NewItem.SubItems.Add(IpAddress); //'添加用户IP地址信息
                      NewItem.SubItems.Add(port); //  '添加用户端口信息
                      NewItem.SubItems.Add(UserName.Trim());//'添加用户姓名信息
                      NewItem.Text = UserName.Trim();                LV.Items.Add(NewItem);// '添加此登录用户的所有信息到系统列表中 
                }
                catch (Exception e) { }
    你原来的代码里面NewItem.Text 就没有赋值 ,在FindUser(Admin,LV)里面调用的却是if(item.text==Admin) 条件不成立的
      

  22.   

    private void AllOneUserInfoToLV(System.Windows.Forms.ListView LV, string IpAddress, string port, string UserName)//'处理新登录用户的信息数据)
            {
                try
                {
                    System.Windows.Forms.ListViewItem NewItem = new ListViewItem();                NewItem.SubItems.Add(IpAddress); //'添加用户IP地址信息
                      NewItem.SubItems.Add(port); //  '添加用户端口信息
                      NewItem.SubItems.Add(UserName.Trim());//'添加用户姓名信息
                      NewItem.Text = UserName.Trim();                LV.Items.Add(NewItem);// '添加此登录用户的所有信息到系统列表中 
                }
                catch (Exception e) { }