• 【转】DataGridViewComboBoxColumn的使用


    本文转自:http://www.cnblogs.com/perfect/archive/2008/06/10/1216591.html



    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace Sys
    {
        
    public partial class Form3 : Form
        {
            
    public Form3()
            {
                InitializeComponent();
            }

            
    private void Form3_Load(object sender, EventArgs e)
            {
                dataGridView1.AllowUserToAddRows 
    = false;
                dataGridView1.AutoGenerateColumns 
    = false;

                
    using (SqlConnection sqlconn = new SqlConnection("server=.;uid=sa;pwd=sa;database=xx"))
                {
                    
    string sql1 = @"select userid,fullname,a.[description],b.ugroupid
                                    from users a left outer join usergroup b 
                                    on a.grade=b.ugroupid
    ";
                    
    string sql2 = "select distinct ugroupid,[description] from usergroup";

                    DataGridViewComboBoxColumn dgvComboBoxColumn 
    = dataGridView1.Columns["grade"as DataGridViewComboBoxColumn;
                    dgvComboBoxColumn.DataPropertyName 
    = "ugroupid";
                    dgvComboBoxColumn.DataSource 
    = GetTable(sql2).DefaultView;//必须在设置dataGridView1的DataSource的属性前设置
                    dgvComboBoxColumn.DisplayMember = "description";
                    dgvComboBoxColumn.ValueMember 
    = "ugroupid";

                    dataGridView1.DataSource 
    = GetTable(sql1).DefaultView;//一定要在dgvComboBoxColumn的DataSource后设置
                }
            }

            
    private DataTable GetTable(string sql)
            {
                
    using (SqlConnection sqlconn = new SqlConnection("server=.;uid=sa;pwd=yuling1310;database=smls"))
                {
                    DataTable dt 
    = new DataTable();
                    SqlDataAdapter sqlda 
    = new SqlDataAdapter(sql, sqlconn);
                    sqlda.Fill(dt);
                    
    return dt;
                }
            }
        }
    }


    注意事项:
    .注意其ValueMember的DataType与DataPropertyName对应的列的DataType要相同,他不会为你做类型转换的。
    2.编程设置显示样式时注意一定要在设置DataSource之前设置DataGridViewComboBoxColumn的DataSource等属性。

  • 相关阅读:
    免费部署Woocall到您自己的网站上
    服务器控件开发之复杂属性
    删除数据库的所有存储过程、主键、外键、索引等
    怎样在dropdownlist的每一项前加一个或多个空格
    Java的内部类学习
    StringUtils全览 (转)
    Java异常大全
    Java web 开发小问题总结(持续更新中)
    Java常用方法总结(持续更新中)
    Python 常用函数
  • 原文地址:https://www.cnblogs.com/freeliver54/p/1590363.html
Copyright © 2020-2023  润新知