一个函数返回了一个dataset,怎样绑定到combobox?
解决方案 »
- vista注册表读取错误
- ConfigurationManager 属性怎样使用?
- webbrowser 多iframe 同URL DocumentComplete 怎么解决
- SqlDependency启动后没有任何反应
- asp.net +sql2000开发的网站上传的时候数据库是怎么上传的?数据库上传的是mdf格式的文件吗?怎么分离数据从本机电脑上?上传后怎么配置网站
- 有点难度,DataGriD的行操作,如何设置在一CELL中显示多行文本内容.
- 集合类主要用在什么地方?
- 如何实现对SQL数据表加锁在C#中webform实现
- 一个关于指针操作的问题!请高手指点。。。
- 推荐几本学习C#的好书吧,我是初学者(在线等候)
- C#基类与子类的一个问题。
- 请老大们给个解决方案。关于dataset绑定到datagrid上相关操作的问题,,期盼秋枫老大在出手啊
Private Sub BindComboBox()
ComboBox1.DataSource = DataSet1.Tables("Suppliers")
ComboBox1.DisplayMember = "ProductName"
End Sub// C#
private void BindComboBox()
{
comboBox1.DataSource = dataSet1.Tables["Suppliers"];
comboBox1.DisplayMember = "ProductName";
}ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vbcon/html/vbtskdatabindingcomboboxcheckedlistboxorlistboxcontrol.htm
comboBox2.DisplayMember="cbmmc";
comboBox2.ValueMember="cbmmc";
this.sqlDataAdapter4.Fill(this.dataSet11);
i=SelectComBo("AA_Depa",this.dataSet11.Tables["zsyd"].Rows[0][6]); //计算该单元在该表中的行号
this.comboBox2.SelectedValue=this.dataSet11.Tables["AA_Depa"].Rows[i]["cbmmc"];//使用ComboBox的SelectedValue属性显示选中的值public int SelectComBo(string tableName,object obj) //返回某单元Cell在DataTable中的行号
{
int i=0;
for(i=0;i<this.dataSet11.Tables[tableName].Rows.Count;i++)
{
if(this.dataSet11.Tables[tableName].Rows[i][0].ToString()==obj.ToString())
{
break;
}
}
return i;
}
DisplayMember,ValueMember msdn上说的不是很清楚,看这里:
http://community.csdn.net/Expert/topic/4128/4128001.xml?temp=.4159815
{
public NoKeyUpCombo ColumnComboBox = null;
private System.Windows.Forms.CurrencyManager _source = null;
private int _rowNum;
private bool _isEditing = false;
ComboValueChanged _valueChanging;
public DataGridComboBoxColumn(ComboValueChanged valueChanging) : base()
{
_valueChanging = valueChanging;
ColumnComboBox = new NoKeyUpCombo();
ColumnComboBox.Leave += new EventHandler(LeaveComboBox);
// ColumnComboBox.Enter += new EventHandler(ComboMadeCurrent);
ColumnComboBox.SelectedIndexChanged += new System.EventHandler(ComboIndexChanged);
ColumnComboBox.SelectionChangeCommitted += new System.EventHandler(ComboStartEditing);
}
private void ComboStartEditing(object sender, EventArgs e)
{
_isEditing = true;
base.ColumnStartedEditing((Control) sender);
}
private void ComboIndexChanged(object sender, EventArgs e)
{
_valueChanging(_rowNum , ColumnComboBox.Text);
}// private void ComboMadeCurrent(object sender, EventArgs e)
// {
// //_isEditing = true;
// }
private void LeaveComboBox(object sender, EventArgs e)
{
if(_isEditing)
{
SetColumnValueAtRow(_source, _rowNum, ColumnComboBox.Text);
_isEditing = false;
Invalidate();
}
ColumnComboBox.Hide();
}
protected override void Edit(System.Windows.Forms.CurrencyManager source, int rowNum, System.Drawing.Rectangle bounds, bool readOnly, string instantText, bool cellIsVisible)
{
base.Edit(source,rowNum, bounds, readOnly, instantText , cellIsVisible); _rowNum = rowNum;
_source = source;
ColumnComboBox.Parent = this.TextBox.Parent;
ColumnComboBox.Location = this.TextBox.Location;
ColumnComboBox.Size = new Size(this.TextBox.Size.Width, ColumnComboBox.Size.Height);
ColumnComboBox.SelectedIndexChanged -= new System.EventHandler(ComboIndexChanged);
ColumnComboBox.Text = this.TextBox.Text;
ColumnComboBox.SelectedIndexChanged += new System.EventHandler(ComboIndexChanged); this.TextBox.Visible = false;
ColumnComboBox.Visible = true;
ColumnComboBox.BringToFront();
ColumnComboBox.Focus();
} protected override bool Commit(System.Windows.Forms.CurrencyManager dataSource, int rowNum)
{
if(_isEditing)
{
_isEditing = false;
SetColumnValueAtRow(dataSource, rowNum, ColumnComboBox.Text);
}
return true;
}
第二步:private void AddCustomDataTableStyle()
{
DataGridTableStyle ts1 = new DataGridTableStyle();
ts1.MappingName = "Customers";
// Set other properties.
ts1.AlternatingBackColor = Color.LightGray;
//
// Add 2 cols with textbox column style
DataGridTextBoxColumn TextCol = new DataGridTextBoxColumn();
TextCol.MappingName = "custID";
TextCol.HeaderText = "CustomerID";
TextCol.Width = 80;
ts1.GridColumnStyles.Add(TextCol); TextCol = new DataGridTextBoxColumn();
TextCol.MappingName = "custName";
TextCol.HeaderText = "Customer Name";
TextCol.Width = 100;
ts1.GridColumnStyles.Add(TextCol); // Step 2 - Use the combo column style
// Add 1 col with combo style
DataGridComboBoxColumn ComboTextCol = new DataGridComboBoxColumn(new ComboValueChanged(MyComboValueChanged));
ComboTextCol.MappingName = "custCity";
ComboTextCol.HeaderText = "Customer Address";
ComboTextCol.Width = 100;
ts1.GridColumnStyles.Add(ComboTextCol); // Step 3 - Additional setup for Combo style
// a) make the row height a little larger to handle minimum combo height
ts1.PreferredRowHeight = ComboTextCol.ColumnComboBox.Height + 3;
// b) Populate the combobox somehow. It is a normal combobox, so whatever...
ComboTextCol.ColumnComboBox.Items.Clear();
ComboTextCol.ColumnComboBox.Items.Add("Chicago");
ComboTextCol.ColumnComboBox.Items.Add("Corvallis");
ComboTextCol.ColumnComboBox.Items.Add("Denver");
ComboTextCol.ColumnComboBox.Items.Add("Great Falls");
ComboTextCol.ColumnComboBox.Items.Add("Kansas City");
ComboTextCol.ColumnComboBox.Items.Add("Los Angeles");
ComboTextCol.ColumnComboBox.Items.Add("Raleigh");
ComboTextCol.ColumnComboBox.Items.Add("Washington");
// c) set the dropdown style of the combo...
ComboTextCol.ColumnComboBox.DropDownStyle = ComboBoxStyle.DropDownList; //add the custom table style to the datagrid table styles
dataGrid1.TableStyles.Add(ts1);
}
第三步:附值
http://www.syncfusion.com/FAQ/WindowsForms/Default.aspx#44你可以参考一下这个!
comboBox.DisplayMember=这是你想显示的字段;
comboBox.ValueMember=显示字段对应的值,一般为主键;比如表中有字段id,namecomboBox.DataSource = dt;//dt是select表的结果的datatable
comboBox.DisplayMember="name";
comboBox.ValueMember="id";
ComboBox1.DisplayMember = "person.userId" ;//表名加字段名
ComboBox1.ValueMember = "person.username" ;this.ComboBox1.DataSource = myDataTable;//数据表
this.ComboBox1.DisplayMember = "Name";字段名
this.ComboBox1.ValueMember = "userId";字段名
ComboBox1.ValueMember = "值字段" ;
ComboBox1.DisplayMember = "显示的字段";
myAdapter.Fill(myDataSet)
那么
Dim myDataSet as New DataSet
myDataSet = myDB.GetDataSet(strSql)
ComboBox1.DataSource = myDataSetComboBox1.DisplayMember = "UserName"
ComboBox1.ValueMember = "UserID"就行了,不用加表名