VS2017,C#,Windows窗体使用

nana_Wang123 2018-01-07 10:46:59
在使用Windows窗体时,做一个工资管理系统,连接了数据库,在员工界面,想在listbox中只显示该员工的基本信息,员工表为workers,创建了一个非静态类包含静态变量用户账号,用户名和用户密码已获取登录页的信息,但在使用foreach循环dataset里的workers表时,使用if(row["wno"].ToString==BaseOperate.username)找出该登录员工的信息时,VS不执行该if语句,不知道为什么?下面贴出源码

private void btnJb_Click(object sender, EventArgs e)
{
string str_sqlcom = "select * from workers";
string str_vtab = "vistual_table";
DataSet thisDset = baseoperate.getDataSet(str_sqlcom, str_vtab);
listBox1.Items.Clear();
listBox1.Items.Add("员工编号\t姓名\t性别\t出生日期\t\t身份证号\t\t学历\t毕业学校\t\t银行账号\t职位\t部门号\t入职时间\t联系电话");
foreach (DataRow row in thisDset.Tables[str_vtab].Rows)
{

if (row["wno"].ToString() == BaseOperate.username)
{

listBox1.Items.Add(row["wno"].ToString() + "\t" + row["wname"].ToString() + "\t"
+ row["wsex"].ToString() + "\t"+ row["wdate"].ToString().Trim() + "\t"
+ row["widcard"].ToString() + "\t" + row["wbackground"].ToString() + "\t"
+ row["wschool"].ToString() + "\t" + row["wpaycard"].ToString() + "\t"
+ row["wpostion"].ToString() + "\t"+ row["dno"].ToString() + "\t" + row["rztime"].ToString() + "\t" + row["wtelphone"].ToString());
break;
}

}
}

我把BaseOperate.username换成一个常数也不执行
...全文
3831 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2018-01-08
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
X-i-n 2018-01-07
  • 打赏
  • 举报
回复
,论坛不像问人,除非很热门的版块,不然哪会立马有回复,这100分浪费得真让人心疼啊
X-i-n 2018-01-07
  • 打赏
  • 举报
回复
第8行打断点看一下。无论if的表达式是 true还是false,if语句一定会被执行到,如果没执行到,说明代码连 if都没到,但if在你的循环里已经是最外层代码了,可以追踪一下thisDset的tables.count以及thisDset.Tables[str_vtab].Rows.Count

18,124

社区成员

发帖
与我相关
我的任务
社区描述
Windows客户端使用相关问题交流社区
社区管理员
  • Windows客户端使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧