combobox绑定数据的问题

__天涯寻梦 2009-01-02 06:45:49
在界面load中绑定combobox,DisplayMember和ValueMember都绑定了字段的,设置了SelectedValueChanged事件让datagridview的数据根据选择项来绑定,问题是界面加载时也触发SelectedValueChanged,并且加载时combobox的SelectedValue没有值,这样查询数据库时就报错了,请教这该怎么解决?
...全文
161 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ssdest 2009-01-03
  • 打赏
  • 举报
回复
你先把comboboxde所有值从数据库加载上
在查询那个信息
comboBox2.Text = comboBox2.Items[Convert.ToInt32(datareader["starid"])-1].ToString(); 这段代码就可以实现加载就会出现在comboBox.text中
ssdest 2009-01-03
  • 打赏
  • 举报
回复
string sql = string.Format("select * from Users where id={0} ", UserHelper.QQnum);
SqlCommand command = new SqlCommand(sql, DBHelper.connection);
DBHelper.connection.Close();
DBHelper.connection.Open();
SqlDataReader datareader = command.ExecuteReader();

while (datareader.Read())
{
if (Convert.ToInt32(datareader["FriendshipPolicyId"]) == 1)
{
radioButton1.Checked = true;
}
else if (Convert.ToInt32(datareader["FriendshipPolicyId"]) == 2)
{
radioButton2.Checked = true;
}
else if (Convert.ToInt32(datareader["FriendshipPolicyId"]) == 3)
{
radioButton3.Checked = true;
}
textBox2.Text = datareader["LoginPwd"].ToString();
textBox4.Text = datareader["id"].ToString();
textBox6.Text = datareader["NickName"].ToString();
comboBox1.Text = datareader["Sex"].ToString();
textBox5.Text = datareader["Name"].ToString();
textBox7.Text = datareader["Age"].ToString();
//星座
if (!(datareader["starid"] is DBNull))
{
comboBox2.Text = comboBox2.Items[Convert.ToInt32(datareader["starid"])-1].ToString();
}
//血型
if (!(datareader["BloodTypeId"] is DBNull))
{
comboBox3.Text = comboBox3.Items[Convert.ToInt32(datareader["BloodTypeId"])-1].ToString();
}
}
datareader.Close();
DBHelper.connection.Close();
}
zhantianyou 2009-01-03
  • 打赏
  • 举报
回复
up the upstairs!
猿敲月下码 2009-01-03
  • 打赏
  • 举报
回复
加个判断 如果datagridview为空就不绑定
长沙三毛 2009-01-02
  • 打赏
  • 举报
回复
在数据绑定到ComboBox后,自定义事件处理语句,如:
comboBox1.SelectedValueChanged += this.Handler;
this.Handler(this, EventArgs.Empty); // 手工调用
__天涯寻梦 2009-01-02
  • 打赏
  • 举报
回复
这样的话加载的时候datagridview就是空的了,有没办法让combobox有值,加载时就能显示第一条数据呢?
pp_shy 2009-01-02
  • 打赏
  • 举报
回复
可以定义一个全局bool型变量来控制
private bool bTag = false;

load事件中
private void Form1_Load(object sender, System.EventArgs e)
{
//执行绑定combobox操作
bTag = true;
}

SelectedValueChanged事件中
if(bTag)
{
//执行对应数据库操作
}
TonyWu66 2009-01-02
  • 打赏
  • 举报
回复

try
{
....
}
catch{}

111,131

社区成员

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

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

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