请问我的ComboBox控件怎么老是返回System.Data.DataRowView
我在窗体的Load时间里用DataSource将ComBoBox控件的数据源设置为Dataset,然后设置其Displaymember属性为指定的字段都没有问题,可是在ComboBox控件的comboBox1_SelectedIndexChanged时间里,它的SelectedItem属性始终返回System.Data.DataRowView,不知道怎么回事,请高手指教,谢谢!--------------------编程问答-------------------- 设置好DisplayValue, ValueMember
SelectedItem中就是System.Data.DataRowView对象
要取ValueMember对应的值,应该用SelectedValue --------------------编程问答-------------------- 兄弟,我按你的方法试了,还是老样子呀!我是这样写的,但是messagebox.show出来的值依然是System.Data.DataRowView。ComboxBox控件的DisplayValue, ValueMember我是在窗体的Load事件里设置的,下面的代码是在ComboBox控件的comboBox1_SelectedIndexChanged事件里写的!
conn = mycon.Connection();
SqlParameter para = new SqlParameter("@comOrderID", SqlDbType.Int);
MessageBox.Show(comboBox1.SelectedValue.ToString().Trim(), "D");
mycon.orderID = Convert.ToInt32(comboBox1.SelectedValue.ToString().Trim());
para.Value = mycon.orderID;
mycon.command().Parameters.Add(para);
SqlDataAdapter detailda = new SqlDataAdapter();
mycon.Command= "Select OrderID,ProductID,UnitPrice,Quantity,Discount from [order details] where OrderID=@comOrderID";
detailda.SelectCommand = mycon.command();
detailda.Fill(ds, "detail");
dataGridView1.DataSource = ds.Tables["detail"];
mycon.close(); --------------------编程问答-------------------- 参考下面代码,
ComboBox1.DataSource = myDataSet ;//数据集
ComboBox1.DisplayMember = "person.userId" ;//表名加字段名
ComboBox1.ValueMember = "person.username" ;
this.ComboBox1.DataSource = myDataTable;//数据表
this.ComboBox1.DisplayMember = "Name";//字段名
this.ComboBox1.ValueMember = "userId";//字段名
获取当前位置的数据
DataRowView rowView = (DataRowView)ComboBox1.SelectedItem; --------------------编程问答-------------------- 谢谢楼上,我再试试
--------------------编程问答-------------------- 没有指明ComboBox绑定的字段名称(DisplayMember) --------------------编程问答-------------------- 今天我也碰到了这个问题,结果是这样解决的:
一开始我是通过一个通用数据类中的一个方法返回一个datatable dt的,然后就
combobox1.datasouce = dt;
combobox1.displaymember = "columnA";
combebox1.valuemember = "comlumnB";
数据是显示得出来,可是在combobox1_SelectedIndexChanged的事件里,取combobox1.SelectedValue就会返回System.Data.DataRowView,而不是columnB的值
后来我把调用数据的过程移出来,变成
OleDbDataAdapter cmd = new OleDbDataAdapter("select * from TableA", conn);
DataTable dt = new DataTable();
cmd.Fill(dt);
combobox1.DataSource = dt;
combobox1.DisplayMember = "columnA";
combobox1.ValueMember = "columnB";
就可以通过combobox1.SelectedValue返回columnB的值
这里面究竟是什么原因,我也搞不清楚,还请哪位大侠给解释解释 --------------------编程问答-------------------- 回头给你看看。 --------------------编程问答--------------------
我的也是这种情况,望高手给解释一下! --------------------编程问答--------------------
我遇到同样的问题:
comb.Text
返回值总是::System.Data.DataRowView
--------------------编程问答-------------------- http://blog.csdn.net/xianfajushi/article/details/7017289 --------------------编程问答-------------------- 这跟你绑定的数据有关 要设置编码及对应的值
//绑定
CBox_Date.DataSource = dtResult;
CBox_Date.DisplayMember = "sperioddesc";
CBox_Date.ValueMember = "speriodcode";
//读取
string CBox_Date = this.CBox_Date.SelectedValue.ToString();
补充:.NET技术 , C#