【转】DataGridViewComboBoxColumn的使用
本文转自:http://www.cnblogs.com/perfect/archive/2008/06/10/1216591.html
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceSys
{
publicpartialclassForm3:Form
{
publicForm3()
{
InitializeComponent();
}
privatevoidForm3_Load(objectsender,EventArgse)
{
dataGridView1.AllowUserToAddRows=false;
dataGridView1.AutoGenerateColumns=false;
using(SqlConnectionsqlconn=newSqlConnection("server=.;uid=sa;pwd=sa;database=xx"))
{
stringsql1=@"selectuserid,fullname,a.[description],b.ugroupid
fromusersaleftouterjoinusergroupb
ona.grade=b.ugroupid";
stringsql2="selectdistinctugroupid,[description]fromusergroup";
DataGridViewComboBoxColumndgvComboBoxColumn=dataGridView1.Columns["grade"]asDataGridViewComboBoxColumn;
dgvComboBoxColumn.DataPropertyName="ugroupid";
dgvComboBoxColumn.DataSource=GetTable(sql2).DefaultView;//必须在设置dataGridView1的DataSource的属性前设置
dgvComboBoxColumn.DisplayMember="description";
dgvComboBoxColumn.ValueMember="ugroupid";
dataGridView1.DataSource=GetTable(sql1).DefaultView;//一定要在dgvComboBoxColumn的DataSource后设置
}
}
privateDataTableGetTable(stringsql)
{
using(SqlConnectionsqlconn=newSqlConnection("server=.;uid=sa;pwd=yuling1310;database=smls"))
{
DataTabledt=newDataTable();
SqlDataAdaptersqlda=newSqlDataAdapter(sql,sqlconn);
sqlda.Fill(dt);
returndt;
}
}
}
}
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceSys
{
publicpartialclassForm3:Form
{
publicForm3()
{
InitializeComponent();
}
privatevoidForm3_Load(objectsender,EventArgse)
{
dataGridView1.AllowUserToAddRows=false;
dataGridView1.AutoGenerateColumns=false;
using(SqlConnectionsqlconn=newSqlConnection("server=.;uid=sa;pwd=sa;database=xx"))
{
stringsql1=@"selectuserid,fullname,a.[description],b.ugroupid
fromusersaleftouterjoinusergroupb
ona.grade=b.ugroupid";
stringsql2="selectdistinctugroupid,[description]fromusergroup";
DataGridViewComboBoxColumndgvComboBoxColumn=dataGridView1.Columns["grade"]asDataGridViewComboBoxColumn;
dgvComboBoxColumn.DataPropertyName="ugroupid";
dgvComboBoxColumn.DataSource=GetTable(sql2).DefaultView;//必须在设置dataGridView1的DataSource的属性前设置
dgvComboBoxColumn.DisplayMember="description";
dgvComboBoxColumn.ValueMember="ugroupid";
dataGridView1.DataSource=GetTable(sql1).DefaultView;//一定要在dgvComboBoxColumn的DataSource后设置
}
}
privateDataTableGetTable(stringsql)
{
using(SqlConnectionsqlconn=newSqlConnection("server=.;uid=sa;pwd=yuling1310;database=smls"))
{
DataTabledt=newDataTable();
SqlDataAdaptersqlda=newSqlDataAdapter(sql,sqlconn);
sqlda.Fill(dt);
returndt;
}
}
}
}
注意事项:
.注意其ValueMember的DataType与DataPropertyName对应的列的DataType要相同,他不会为你做类型转换的。
2.编程设置显示样式时注意一定要在设置DataSource之前设置DataGridViewComboBoxColumn的DataSource等属性。