有一个方法代码如下:
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的值死活传递不过来,望高手赐教,搞了一天了,郁闷死了。
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的值死活传递不过来,望高手赐教,搞了一天了,郁闷死了。
你去掉try,调试下
{
try
{
foreach (System.Windows.Forms.ListViewItem item in LV.Items)
{
if (item.Text == Admin)//找到用户,说明是系统用户,返回它的值
return Admin;
}
return null;
}
catch (Exception e) { return null; }
}
返回空?
你看下这里会不会存在空格的问题
把return null放在foreach里面,if下面还是会报错,说什么不是所有的代码路径都返回值
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;
}
}
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();
}
}
}
}
debug一步一步跟踪即可
{ 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"]));
}
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) 条件不成立的
{
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) { }