日期:2014-05-20  浏览次数:20812 次

datagridview问题 急,在线等
截图如下:
http://www.globalmarket.com/gb/ls/combo.jpg
datagridview可以直接添加数据更新.
前5列是来自gx表的,最后一列是来自bm表的,我只想更新前5列(就是表gx).但第五列不能乱填,所填的资料必须最后一列combobox中存在的
现在不知道该如何控制第5列的资料

两个表
工序表gx
id   name     bm(所属部门)   ...
1     裁剪       设计部             ...
2     制革       技术部             ...
.....

部门表bm

id   name
1     设计部
2     技术部
3     商展部
.....


我把工序表做成datatable绑定

到datagridview中  

显示结果是直接读取所有字段,

但我想所属部门字段是

combobox下拉,并且下拉选项是

bm表的选项

该如何做?

我就是搞不懂那个读取另外一

个数据表的combobox列如何存

到工序表中  


------解决方案--------------------
刚刚解决的一个一样的问题:
//combobox数据源。。。
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn( "Sex ", typeof(string)));

DataRow row = dt.NewRow();
row[0] = "man ";
dt.Rows.Add(row);

DataRow row2 = dt.NewRow();
row2[0] = "woman ";
dt.Rows.Add(row2);

dt.AcceptChanges();

//DataGridView列
DataGridViewComboBoxColumn cbc = new DataGridViewComboBoxColumn();
cbc.DataSource = dt;
cbc.DisplayMember = "Sex ";
cbc.ValueMember = "Sex ";
cbc.DataPropertyName = "Sex ";
cbc.HeaderText = "Sex ";

DataGridViewTextBoxColumn cid = new DataGridViewTextBoxColumn();
cid.HeaderText = "ID ";
cid.DataPropertyName= "ID ";

DataGridViewTextBoxColumn cname = new DataGridViewTextBoxColumn();
cname.HeaderText = "Name ";
cname.DataPropertyName = "Name ";
dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {cid, cname, cbc});

//DataGridView数据源
DataTable dtSource = new DataTable();
dtSource.Columns.Add( "ID ", typeof(Int32));
dtSource.Columns.Add( "Name ", typeof(string));
dtSource.Columns.Add( "Sex ", typeof(string));

DataRow r1 = dtSource.NewRow();
r1[0] = 1;
r1[1] = "test ";
dtSource.Rows.Add(r1);
dtSource.AcceptChanges();

dataGridView1.DataSource = dtSource;