SELECT COLUMN_NAME FROM  DBA_TAB_COLUMNS  WHERE TABLE_NAME = '表名' ORDER BY COLUMN_ID查出表的列名
怎么动态绑定在datagridview 中的Combox数据源上
 
其中column.DataPropertyName、column.DisplayMember、column.ValueMember要填什么。
 
要的效果是在datagridview中combox可以选择表的列名
WinFormDataGridViewcombox

解决方案 »

  1.   


            /// <summary>
            ///   ComboBox或CheckedListBox或DataGridViewComboBoxColumn绑定到数据源
            /// </summary>
            /// <param name="obj"> 要绑定数据源的控件 </param>
            /// <param name="strValueColumn"> ValueMember属性要绑定的列名称 </param>
            /// <param name="strTextColumn"> DisplayMember属性要绑定的列名称 </param>
            /// <param name="strSql"> SQL查询语句 </param>
            /// <param name="strTable"> 数据表的名称 </param>
            public static void BindComboBox(Object obj, string strValueColumn, string strTextColumn, string strSql, string strTable)
            //Component —替换—> Object
            {
                try
                {
                    string strType = obj.GetType().ToString();
                    strType = strType.Substring(strType.LastIndexOf(".") + 1);                //判断控件的类型
                    switch (strType)
                    {
                        case "ComboBox":                        ComboBox cbx = (ComboBox)obj;
                            cbx.BeginUpdate();
                            cbx.DataSource = DbHelperOleDb.Query(strSql, strTable).Tables[strTable];
                            cbx.DisplayMember = strTextColumn;
                            cbx.ValueMember = strValueColumn;
                            cbx.EndUpdate();
                            break;                    case "CheckedListBox":                        CheckedListBox clb = (CheckedListBox)obj;
                            clb.DataSource = DbHelperOleDb.Query(strSql, strTable).Tables[strTable];
                            clb.DisplayMember = strTextColumn;
                            clb.ValueMember = strValueColumn;
                            break;                    case "DataGridViewComboBoxColumn":                        DataGridViewComboBoxColumn dgvcbx = (DataGridViewComboBoxColumn)obj;
                            dgvcbx.DataSource = DbHelperOleDb.Query(strSql, strTable).Tables[strTable];
                            dgvcbx.DisplayMember = strTextColumn;
                            dgvcbx.ValueMember = strValueColumn;
                            break;                    case "DataGridViewComboBoxCell":                        DataGridViewComboBoxCell dgvcbc = (DataGridViewComboBoxCell)obj;
                            dgvcbc.DataSource = DbHelperOleDb.Query(strSql, strTable).Tables[strTable];
                            dgvcbc.DisplayMember = strTextColumn;
                            dgvcbc.ValueMember = strValueColumn;
                            break;                    default:
                            break;
                    }
                }试试这个方法
      

  2.   

    column.DataSource=数据表DataTable;
    column.DataPropertyName="COLUMN_ID";
    column.DisplayMember="COLUMN_NAME";
    column.ValueMember="COLUMN_ID";
      

  3.   


    string _sql=@"select name,id from syscolumns where id=......column.DataPropertyName="id";
    column.DisplayMember="name";
    column.ValueMember="id";
      

  4.   

    quote=引用 4 楼 xky96 的回复:]string _sql=@"select name,id from syscolumns where id=......column.DataPropertyName="id";
    column.DisplayMember="name";
    column.ValueMember="id";
    [
      

  5.   

    这个combox弄了好几天了,没弄明白,就是一个下拉框存储