绑定DataGrid中文列头偷懒的方法

今天写了一段代码,目的是想在DataGrid显示中文列头的时候不用老是写SQL语句在字段名后面加中文,如:
“select a 编号,b 姓名,c 性别 from tablename“, 但如果字段有很多呢?怎么办,于是想了一个偷懒的办法,只需要调用一个方法,传入表名,将返回的DataTable直接绑定在DataGrid上,OK!!!

前题条件是必须在数据库内将字段的中文意思写在" 描述 "内,否则会报错!!!(SqlServer数据库)

为了容易看懂,拆成了几个方法:

///

1<summary>   
2/// 获取数据表   
3/// </summary>

///

1<param name="FieldEn"/>

数据库字段名数组
///

1<param name="TableName"/>

想要打开的表名
///

1<returns>数据表</returns>

public DataTable GetDataTableByField( string [] FieldEn, string TableName)
{
Hashtable hash= new Hashtable();
hash=FillHashtable(TableName);

string field= string .Empty;
if (FieldEn== null )
{
return null ;//这里可以写,如果不传字段名,就显示所有的字段名,偷懒,留给你写咧
}
else
{
for(int j=0;j

 1<fielden.length;j++) "+="" "+hash[fielden[j]].tostring()+",";="" +="" +"="" <summary="" char[]{','});="" datatable="" dt="GetDataTableBySQL(sql);" dt.tablename="TableName;" dt;="" field="" field+='FieldEn[j]+"' from="" return="" sql="select " string="" tablename;="" {="" }="">   
 2/// 获取哈希表(表的英文及中文字段名)   
 3///    
 4/// <param name="TableName"/>表的名称   
 5/// <returns>哈希表</returns>   
 6private  Hashtable FillHashtable(  string  TableName)   
 7{   
 8Hashtable hash=  new  Hashtable();   
 9string  sql="SELECT objname,[value] FROM ::fn_listextendedproperty"+   
10"(NULL,'user', 'dbo', 'table', '"+TableName+"', 'column', default)";   
11DataTable dt=GetDataTableBySQL(sql);   
12foreach  (DataRow dr  in  dt.Rows)   
13{   
14hash.Add(dr["objname"].ToString(),dr["value"].ToString());   
15}   
16return  hash;   
17}   
18  
19/// <summary>   
20/// 获取数据表(自定的SQL)   
21/// </summary>   
22/// <param name="strSQL"/>自定义的SQL语句   
23/// <returns>数据表</returns>   
24public  DataTable GetDataTableBySQL(  string  strSQL)   
25{   
26//GetConnection()为获取数据连接的方法,这里就不列出来咧!!嘿嘿    
27SqlDataAdapter apt=  new  SqlDataAdapter(strSQL,GetConnection());   
28DataTable dt=  new  DataTable();   
29apt.Fill(dt);   
30return  dt;   
31}   
32  
33写这个的时候并未考虑性能方面的问题,如果是想批评它速度慢,性能差的朋友就不用说了!!!   
34不过欢迎提出你的想法,并帮我改进,感激不尽!!!</fielden.length;j++)>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus