代码改变世界

下拉ComBoboxDataGridView的实现

2010-06-23 19:22  Daniel Xu  阅读(863)  评论(1编辑  收藏  举报

  ComBoboxDataGridView非常实用的一个组件,由Combobox+DataGridView组成,一般情况下点击Combobox下拉箭头你会看到一列值,往往一列值表现出来的结果不是很直观,数据多的情况下,而且相识度大的情况下,就很难辨识出自己想要的数据,出于这个目的在网上搜索了一些类似的代码,先看到的是

地址为http://www.cnblogs.com/CodeAnyWhere/archive/2005/12/13/296461.html,博主给出了例子,下载例子运行不错效果跟我想要的非常类似那就是它了,不过有个问题出来了,博主的数据源是手动添加的代码如下

手动的添加数据源
private DataTable GetDataTable()
{
DataTable dt
= new DataTable();

dt.Columns.Add(
"编号");
dt.Columns.Add(
"姓名");
dt.Columns.Add(
"部门");

dt.LoadDataRow(
new string[] { "1003", "小张", "a" }, true);
dt.LoadDataRow(
new string[] { "1004", "小王", "a" }, true);
dt.LoadDataRow(
new string[] {"1005","小丽","a"},true);

return dt;

}

 

this.编号.DataSource = GetDataTable();

 


问题出来了,日常的使用过程中数据源都是从数据库获得的,修改成数据源为数据库的

定义一个DataTable
public DataTable ExcuteSQL(string strSql)
{
string strServer = "server=.;database=123;uid=sa;pwd=123;";
SqlConnection con
= new SqlConnection(strServer);
con.Open();
SqlDataAdapter dataAdapter
= new SqlDataAdapter(strSql, con);
//DataSet ds = new DataSet();
DataTable dt = new DataTable();
dataAdapter.Fill(dt);
con.Close();

return dt;
}

 

this.编号.DataSource = ExcuteSQL("select 卡号,描述,姓名 from newtable");

 

改造工作完成了,运行后点击combobox下拉按钮看到的数据就是从数据库读取的了。