combobox绑定数据的问题 在界面load中绑定combobox,DisplayMember和ValueMember都绑定了字段的,设置了SelectedValueChanged事件让datagridview的数据根据选择项来绑定,问题是界面加载时也触发SelectedValueChanged,并且加载时combobox的SelectedValue没有值,这样查询数据库时就报错了,请教这该怎么解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 try {....}catch{} 可以定义一个全局bool型变量来控制private bool bTag = false;load事件中private void Form1_Load(object sender, System.EventArgs e){ //执行绑定combobox操作 bTag = true;}SelectedValueChanged事件中if(bTag){ //执行对应数据库操作} 这样的话加载的时候datagridview就是空的了,有没办法让combobox有值,加载时就能显示第一条数据呢? 在数据绑定到ComboBox后,自定义事件处理语句,如:comboBox1.SelectedValueChanged += this.Handler;this.Handler(this, EventArgs.Empty); // 手工调用 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(); } 你先把comboboxde所有值从数据库加载上在查询那个信息 comboBox2.Text = comboBox2.Items[Convert.ToInt32(datareader["starid"])-1].ToString(); 这段代码就可以实现加载就会出现在comboBox.text中 加个判断 如果datagridview为空就不绑定 C#中在DataGridView中添加一行数据后,怎样让该行被选中? c# 读取txt文件 打印机问题 请问如何用XmlDocument对象把两个同构的xml文档合并?? 怎么做每天定时自动做某事的功能?谁能提供个思路 创建组件"AxHost"失败!!急!!! [字符串问题]求解替代问题. C#事务的问题,SqlTransaction 的对象,可以夸方法传递吗 求组,在dataset里可否实现这样的逻辑 C# object类型如何转成float? 求MDI窗体工作区的真实高度??? C#按回车焦点从textbox1到textbox2如何实现呢?
try
{
....
}
catch{}
private bool bTag = false;load事件中
private void Form1_Load(object sender, System.EventArgs e)
{
//执行绑定combobox操作
bTag = true;
}SelectedValueChanged事件中
if(bTag)
{
//执行对应数据库操作
}
comboBox1.SelectedValueChanged += this.Handler;
this.Handler(this, EventArgs.Empty); // 手工调用
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();
}
在查询那个信息
comboBox2.Text = comboBox2.Items[Convert.ToInt32(datareader["starid"])-1].ToString(); 这段代码就可以实现加载就会出现在comboBox.text中