关于Combobox下拉框不显示数据的问题

xijianghong 2010-04-09 12:00:54
private void cboxUName_SelectedIndexChanged(object sender, EventArgs e)
{
SqlDataReader sqlread = datacon.getread("select UserName,UserRight from tb_User where UserName='" + cboxUName.Text + "'");
if (sqlread.Read())
{
labURight.Text = sqlread["UserRight"].ToString();
M_str_right = labURight.Text;
}
sqlread.Close();
}

================================================================================frmlogin.cs关于combobox的代码
class DataOperate

DataCon datacon = new DataCon();//声明DataCon类的一个对象,以调用其方法

#region 绑定ComboBox控件
/// <summary>
/// 对ComboBox控件进行数据绑定
/// </summary>
/// <param name="M_str_sqlstr">SQL语句</param>
/// <param name="M_str_table">表名</param>
/// <param name="M_str_tbMember">数据表中字段名</param>
/// <param name="cbox">ComboBox控件ID</param>
public void cboxBind(string M_str_sqlstr, string M_str_table, string M_str_tbMember, ComboBox cbox)
{
DataSet myds = datacon.getds(M_str_sqlstr, M_str_table);
cbox.DataSource = myds.Tables[M_str_table];
cbox.DisplayMember = M_str_tbMember;
}
#endregion
===================================================================================公共类DataOperate的代码

自认为没有什么问题 但是不显示数据 我水平不高 都是看书做的 但调试的时候也不报错 数据库存储过程看起来也没有什么问题 所以只好请教高人 多谢指点!!
...全文
1251 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xijianghong 2010-04-09
  • 打赏
  • 举报
回复
拜托 高手帮忙 顺便问下 结贴意义何在?
xijianghong 2010-04-09
  • 打赏
  • 举报
回复
而且 我刚才试了一下dropdownstlye属性中 用simple ;dropdown这两种是可以登录的 还有dropdownlist 也就是我要用的这种 是不能显示数据的 就好象没有连接上数据库一样 实际上连接上了。。。

ps 我刚开始研究C# 虽然以前用过但这次想好好学习一下 还是很生疏很生疏
xijianghong 2010-04-09
  • 打赏
  • 举报
回复
DataOperate是个公共类 是不是不能直接把数据库的字段名写进去啊
xray2005 2010-04-09
  • 打赏
  • 举报
回复
DataSet myds = datacon.getds(M_str_sqlstr, M_str_table);
cbox.DataSource = myds.Tables[M_str_table];
cbox.DisplayMember = “字段名1”;
cbox.ValueMember="字段名2";

同时,确定你的 myds.Tables[M_str_table];中有数据。
hugang001 2010-04-09
  • 打赏
  • 举报
回复
class DataOperate

你有这个类、但是在绑定的操作里好像没有用到那个类里面的查询方法?
你确定取到值了?
xijianghong 2010-04-09
  • 打赏
  • 举报
回复
是的
没有绑定好
doperate.cboxBind("select UserName from tb_User", "tb_User", "UserName", cboxUName);
加上这个 一切ok 多谢大家
  • 打赏
  • 举报
回复
public void cboxBind(string M_str_sqlstr, string M_str_table, string M_str_tbMember, ComboBox cbox)
{
DataSet myds = datacon.getds(M_str_sqlstr, M_str_table);
cbox.DataSource = myds.Tables[M_str_table];
cbox.DisplayMember = M_str_tbMember;// 试试看把这句话删掉
}

另外,访问combox的值起来比较方便的是1楼的写法。
Net85 2010-04-09
  • 打赏
  • 举报
回复
DataSet myds = datacon.getds(M_str_sqlstr, M_str_table);
cbox.DataSource = myds.Tables[M_str_table];
cbox.ValueMember = "HomeAddress";
cbox.DataBind();
lanfengsese 2010-04-09
  • 打赏
  • 举报
回复
dropdownlist 好像要先把数据填充到下拉框集合中吧
Net85 2010-04-09
  • 打赏
  • 举报
回复
没有写这句 cbox.DataBind();
TiramisuH 2010-04-09
  • 打赏
  • 举报
回复
cbox.DataSource = myds.Tables[M_str_table];
cbox.DisplayMember = “字段名1”;
cbox.ValueMember="字段名2";

111,082

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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