解决方案 »
- 小菜求教,子窗体继承多个父窗体.感激不尽
- 如何使用UdpClient异步方式连续接收数据
- C# WEB 如何实现多视频!
- list数组转为json
- 如何使WebDataGrid的不同行根据不同的条件有不同的显示格式?
- 多线程中显示form(窗体)
- ADO.NET为什么不能得到SQLServer中For XML 得到的结果
- 如何从DataTable中获取从指定index开始count行数据的DataView?
- 可以在客户机上打开服务器上的.net项目吗
- 请问怎样在程序中设定当前输入窗口,有两个richTextBox控键,程序中怎么设定为当前输入
- 获取EXCEL单元格的位置
- 关于Excel导入Combox
if (!IsPostBack)
{}
还没看楼主的代码~~~~~~~不过你的这个IsPostBack好像是WEB程序的吧?
猛一看是winform的代码,我晕死
断点调试下,程序是咋跑的
失败ing.....
while (rs_card.Read())
{
class_card_id = (rs_card["card_id"]).ToString();
class_card_name = (rs_card["card_name"]).ToString();
class_card_fee = (rs_card["card_fee"]).ToString();
dl_card_class.ValueMember = class_card_id;
dl_card_class.Items.Add(class_card_name);
dl_card_class.SelectedIndex = 0;
}循环代码应该有错误
{
class_card_id = (rs_card["card_id"]).ToString();
class_card_name = (rs_card["card_name"]).ToString();
class_card_fee = (rs_card["card_fee"]).ToString();
dl_card_class.ValueMember = class_card_id;
dl_card_class.Items.Add(class_card_name);
dl_card_class.SelectedIndex = 0;
}
lz代码错误参考:ComboBoxTreatmentSort.DataSource = dataTableTreatmentType;//这个是你的数据源datatable
ComboBoxTreatmentSort.DisplayMember = "card_name";//这个是datatable里面的栏位
ComboBoxTreatmentSort.ValueMember = "card_id";//这个是datatable里面的栏位ComboBoxTreatmentSort.SelectedValue.ToString() 对应的就是ValueMember 里帮定的栏位的值
{
List<string> list = new List<string>();
list.Add("a");
list.Add("b");
list.Add("c");
for (int i = 0; i < list.Count; i++)
{
comboBox1.Items.Add(list[i]);
}
} private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("选中了:"+comboBox1.SelectedItem.ToString());
}
{
class_card_id = (rs_card["card_id"]).ToString();
class_card_name = (rs_card["card_name"]).ToString();
class_card_fee = (rs_card["card_fee"]).ToString();
dl_card_class.ValueMember = class_card_id;
dl_card_class.Items.Add(class_card_name);
dl_card_class.SelectedIndex = 0;
}改成
datatable dt=new datatable();
dt.load(rs_card);
dl_card_class.DisplayMember = "card_name";//这个是datatable里面的栏位
dl_card_class.ValueMember = "card_id";//这个是datatable里面的栏位string name=ComboBoxTreatmentSort.SelectedText.ToString()
string id=ComboBoxTreatmentSort.SelectedValue.ToString()
datatable dt=new datatable();
dt.load(rs_card);
dl_card_class.datasource=dt; //绑定下数据源
dl_card_class.DisplayMember = "card_name";//这个是datatable里面的栏位
dl_card_class.ValueMember = "card_id";//这个是datatable里面的栏位
dl_card_class.selectindex=0;//初始化选择项string name=dl_card_class.SelectedText.ToString()
string id=dl_card_class.SelectedValue.ToString()
解释:
comboBox1.ValueMember = "1";
comboBox1.Items.Add("一");comboBox1.ValueMember = "2";
comboBox1.Items.Add("二");comboBox1.ValueMember = "3";
comboBox1.Items.Add("三");
comboBox1.SelectedIndex = 0;这样只是添加了3列数据的显示值一二三进入下拉框。下拉框的ValueMember值并未能对应添加。所以默认最后一个值comboBox1.ValueMember = "3";通过下拉事件取comboBox1.ValueMember时,自然默认都是3。
通过调试你可以看到。是有selectItem会有对应的值。并没有value值。
把它设成6了,而不是3、4、5、6
{
class_card_id = (rs_card["card_id"]).ToString();
class_card_name = (rs_card["card_name"]).ToString();
class_card_fee = (rs_card["card_fee"]).ToString();
dl_card_class.ValueMember = class_card_id;
dl_card_class.Items.Add(class_card_name);
dl_card_class.SelectedIndex = 0;
}
你循环问题吧。你只是把最后循环的class_card_id是6的给了dl_card_class.ValueMember吧。
while (rs_card.Read())
{
DataTable dt = new DataTable();
dt.Load(rs_card);
dl_card_class.DataSource = dt; dl_card_class.DisplayMember = (rs_card["card_name"]).ToString(); dl_card_class.SelectedIndex = 0;
}
class_conn.Close();
rs_card.Close();
{
DataTable dt = new DataTable();
dt.Load(rs_card);
dl_card_class.DataSource = dt;
dl_card_class.DisplayMember = (rs_card["card_name"]).ToString(); dl_card_class.SelectedIndex = 0;
}
class_conn.Close();
rs_card.Close();
private void dl_card_class_SelectedIndexChanged(object sender, EventArgs e)
{
class_card_id = dl_card_class.ValueMember;
tb_fee_in_money.Text = dl_card_class.SelectedValue;
}
Message="阅读器关闭时尝试调用 MetaData 无效。"
从抛出的异常来看,是你调用了DataReader,但是,在关闭了连接之后试图访问数据集,自然是会抛出异常的。因为,DataReader并没有断开式操作的能力,
{
DataTable dt = new DataTable();
dt.Load(rs_card);
dl_card_class.DataSource = dt;
dl_card_class.DisplayMember = (rs_card["card_name"]).ToString(); dl_card_class.SelectedIndex = 0;
}
rs_card.Close();
class_conn.Close();
红色代码改一下位置看看
{
DataTable dt = new DataTable();
dt.Load(rs_card);
dl_card_class.DataSource = dt;
dl_card_class.DisplayMember = (rs_card["card_name"]).ToString(); dl_card_class.SelectedIndex = 0;
}
-------------------替换----------------datatable dt=new datatable();
dt.load(rs_card);
dl_card_class.datasource=dt; //绑定下数据源
dl_card_class.DisplayMember = "card_name";//这个是datatable里面的栏位
dl_card_class.ValueMember = "card_id";//这个是datatable里面的栏位
dl_card_class.selectindex=0;//初始化选择项