DataColumn中属性caption属性和属性ColumnName的区别

1:控制按钮、标签等控件属性中,名称属性和caption属性有什么不同?_百度知道简单的sqlserver-&bs或cs数据交互模式 - 王朝网络 -
分享&&&&&当前位置: &&&&&&&&简单的sqlserver-&bs或cs数据交互模式简单的sqlserver-&bs或cs数据交互模式上一篇下一篇字体: ||
| 來源: 互联网&&  主要记录工作当中遇到的一些问题和总结的一些经验  客户端请求--&web服务接口--&sql 语句执行(存储在数据库中)--&web服务(客户端通过调用web服务接口)--&返回DataTable或Dataset(sql server)--& 统一的DataTable或Dataset转换成对象--&提交给客户端(xml、json等等其他的)  1、首先通过sql语句返回结果,返回的结果一般都以Dataset的形式和DataTable的形式返回。  2、统一的DataTable或Dataset转换成对象  1#region写对象信息23///&summary&4///5///&/summary&6///&typeparam name="T"&&/typeparam&7///&param name="tableName"&&/param&8///&returns&&/returns&9publicT WriteTObjectInfo&T&(stringtableName, DataRow dr,string[] exceptArray)10{11try12{13if(this.Status ==0)14{15thrownewException(this.Msg);16}1718T item = Activator.CreateInstance&T&();1920List&Parameter& listParameter = GetPRoperties&T&(item, exceptArray);2122foreach(Parameter pinlistParameter)23{24foreach(DataColumn dcinthis.dsResult.Tables<tableName].Columns)25{26if(dc.ColumnName ==p.Name)27{28Type type =item.GetType();2930MethodInfo method = type.GetMethod("SetAttributeValue");3132method.Invoke(item,newobject[] { p.Name, dr[p.Name].ToString().Trim() });33}34}35}catch(Exception ex)40{41thrownewException("写"+ Activator.CreateInstance&T&().ToString() +"信息发生错误,错误原因:"+ex.Message);42}43}4445///&summary&46///47///&/summary&48///&typeparam name="T"&&/typeparam&49///&param name="tableName"&&/param&50///&returns&&/returns&51publicT WriteTObjectInfo&T&(stringtableName)52{53try54{55if(this.Status ==0)56{57thrownewException(this.Msg);58}5960T item = Activator.CreateInstance&T&();6162if(this.dsResult.Tables.Contains(tableName))63{64DataRow dr =this.dsResult.Tables<tableName].Rows[0];6566List&Parameter& listParameter = GetProperties&T&(item);6768foreach(Parameter pinlistParameter)69{70foreach(DataColumn dcinthis.dsResult.Tables<tableName].Columns)71{72if(dc.ColumnName ==p.Name)73{74Type type =item.GetType();7576MethodInfo method = type.GetMethod("SetAttributeValue");7778method.Invoke(item,newobject[] { p.Name, dr[p.Name].ToString().Trim() });79}80}81}82}catch(Exception ex)87{88thrownewException("写"+ Activator.CreateInstance&T&() +"信息发生错误,错误原因:"+ex.Message);89}90}9192///&summary&93///94///&/summary&95///&typeparam name="T"&&/typeparam&96///&param name="tableName"&&/param&97///&returns&&/returns&98publicT WriteTObjectInfo&T&(stringtableName,string[] exceptArray)99{100try101{102if(this.Status ==0)103{104thrownewException(this.Msg);105}106107T item = Activator.CreateInstance&T&();108109if(this.dsResult.Tables.Contains(tableName))110{111DataRow dr =this.dsResult.Tables<tableName].Rows[0];112113List&Parameter& listParameter = GetProperties&T&(item, exceptArray);114115foreach(Parameter pinlistParameter)116{117foreach(DataColumn dcinthis.dsResult.Tables<tableName].Columns)118{119if(dc.ColumnName ==p.Name)120{121Type type =item.GetType();122123MethodInfo method = type.GetMethod("SetAttributeValue");124125method.Invoke(item,newobject[] { p.Name, dr[p.Name].ToString().Trim() });126}127}128}129}3catch(Exception ex)134{135thrownewException("写"+ Activator.CreateInstance&T&() +"信息发生错误,错误原因:"+ex.Message);136}137}138139///&summary&140///141///&/summary&142///&typeparam name="T"&&/typeparam&143///&param name="tableName"&&/param&144///&returns&&/returns&145publicList&T& WriteTObjectInfoList&T&(stringtableName,string[] exceptArray)146{147try148{149if(this.Status ==0)150{151thrownewException(this.Msg);152}153154List&T& list =newList&T&();155156if(this.dsResult.Tables.Contains(tableName))157{158foreach(DataRow drinthis.dsResult.Tables<tableName].Rows)159{160T item = WriteTObjectInfo&T&(tableName, dr, exceptArray);161162list.Add(item);163}164}8catch(Exception ex)169{170thrownewException("写"+ Activator.CreateInstance&T&().ToString() +"信息发生错误,错误原因:"+ex.Message);171}172}173174///&summary&175///176///&/summary&177///&typeparam name="T"&&/typeparam&178///&param name="tableName"&&/param&179///&returns&&/returns&180publicList&T& WriteTObjectInfoList&T&(stringtableName)181{182returnWriteTObjectInfoList&T&(tableName,newstring[] { });183}184185#endregion  View Code  以上代码统一用泛型实现  比较实用的获取属性的代码  1///&summary&2///获取对象的属性名称、值和描述3///&/summary&4///&typeparam name="T"&对象的类型&/typeparam&5///&param name="t"&对象&/param&6///&returns&对象列表&/returns&7publicList&Parameter& GetProperties&T&(T t)8{9List&Parameter& list =newList&Parameter&();1011if(t ==null)12{1314}15PropertyInfo[] properties = t.GetType().GetProperties(BindingFlags.Instance |BindingFlags.Public);1617if(properties.Length &=0)18{1920}21foreach(PropertyInfo iteminproperties)22{23stringname = item.N//名称24objectvalue = item.GetValue(t,null);//值2526stringdes =string.E2728try29{30des = ((DescriptionAttribute)Attribute.GetCustomAttribute(item,typeof(DescriptionAttribute))).D//属性值31}32catch{ }3334if(item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith("String"))35{36Parameter parameter =newParameter();3738parameter.Name =39parameter.Value = value ==null?"": value.ToString();40parameter.Object =4142list.Add(parameter);43}44else45{46GetProperties(value);47}48}///&summary&53///54///&/summary&55///&typeparam name="T"&&/typeparam&56///&param name="t"&&/param&57///&param name="exceptArray"&&/param&58///&returns&&/returns&59publicList&Parameter& GetProperties&T&(T t,string[] exceptArray)60{61List&Parameter& list =newList&Parameter&();6263if(t ==null)64{6566}67PropertyInfo[] properties = t.GetType().GetProperties(BindingFlags.Instance |BindingFlags.Public);6869if(properties.Length &=0)70{7172}73foreach(PropertyInfo iteminproperties)74{75stringname = item.N//名称76objectvalue = item.GetValue(t,null);//值77stringdes =string.E7879try80{81des = ((DescriptionAttribute)Attribute.GetCustomAttribute(item,typeof(DescriptionAttribute))).D//属性值82}83catch(Exception ex)84{85des =string.E86}8788if(item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith("String"))89{90if(!((IList)exceptArray).Contains(name))91{92Parameter parameter =newParameter();9394parameter.Name =95parameter.Value = value ==null?"": value.ToString();96parameter.Object =9798list.Add(parameter);99}100}101else102{103GetProperties(value);104}105}106107}  View Code  
基础的Parameter类  1publicclassParameter2{3///&summary&4///名称5///&/summary&6privatestring_name =string.E78///&summary&9///获取或设置名称10///&/summary&11publicstringName12{13get{returnthis._ }14set{this._name = }15}1617///&summary&18///值19///&/summary&20privatestring_value =string.E2122///&summary&23///获取或设置值24///&/summary&25publicstringValue26{27get{returnthis._ }28set{this._value = }29}3031privateobject_object =323334publicobjectObject35{36get{returnthis._ }37set{this._object = }38}3940///&summary&41///构造函数42///&/summary&43///&param name="name"&名称&/param&44///&param name="value"&值&/param&45publicParameter(stringname,stringvalue)46{47this.Name =48this.Value =49}5051publicParameter(stringname,objectobj)52{53this.Name =54this.Object =55}5657///&summary&58///构造函数59///&/summary&60publicParameter()61{///&summary&66///67///&/summary&68///&returns&&/returns&69publicoverridestringToString()70{71returnstring.Format(@"名称(Name):{0},值(Value):{1},对象(Object):{2}",this.Name,this.Value,this.Object);72}73}  View Code  
对象例子(这个对象例子的类,这个类其实和上面的DataTable和Dataset是对应的,通过以上的操作可以把DataTable或Dataset转换成具体的对象),因为这个类是比较统一的可以用代码生成工具可以直接生成  1publicclassLog2{3#region属性45[Description("数据日志编号")]6publicstringLogID { }78[Description("设备编号")]9publicstringDeviceID { }1011[Description("设备名称")]12publicstringDeviceName { }1314[Description("质控项目编号")]15publicstringQCItemDicID { }1617[Description("质控项目中文名称")]18publicstringCNName { }1920[Description("质控项目英文名称")]21publicstringENName { }2223[Description("质控项目名称简拼码")]24publicstringJPM { }2526[Description("质控项目名称简拼码")]27publicstringNameAB { }2829[Description("质控项目单位")]30publicstringUnit { }3132[Description("设备质控编号")]33publicstringDev_QC_No { }3435[Description("设备质控序号")]36publicstringDev_QC_SequenceNo { }3738[Description("设备质控名称")]39publicstringDev_QC_Name { }4041[Description("质控时间")]42publicstringQCTime { }4344[Description("值类型")]45publicstringTextType { }4647[Description("数值")]48publicstringItemValue { }4950[Description("创建时间")]51publicstringCreateTime { }5253[Description("创建人")]54publicstringCreateUser { }5556[Description("序号(通道号)")]57publicstringSerial { }5859#endregion6061///&summary&62///设置属性值63///&/summary&64///&param name="name"&名称&/param&65///&param name="value"&值&/param&66publicvoidSetAttributeValue(stringname,stringvalue)67{68switch(name)69{70case"LogID"://数据日志编号71this.LogID =72  73case"DeviceID"://设备编号74this.DeviceID =75  76case"DeviceName"://设备名称77this.DeviceName =78  79case"QCItemDicID"://质控项目编号80this.QCItemDicID =81  82case"CNName"://质控项目中文名称Name =84  85case"ENName"://质控项目英文名称86this.ENName =87  88case"JPM"://质控项目名称简拼码89this.JPM =90  91case"NameAB"://质控项目名称简拼码92this.NameAB =93  94case"Unit"://质控项目单位95this.Unit =96  97case"Dev_QC_No"://设备质控编号98this.Dev_QC_No =99  100case"Dev_QC_SequenceNo"://设备质控序号101this.Dev_QC_SequenceNo =102  103case"Dev_QC_Name"://设备质控名称104this.Dev_QC_Name =105  106case"QCTime"://质控时间107this.QCTime =108  109case"TextType"://值类型110this.TextType =111  112case"ItemValue"://数值113this.ItemValue =114  115case"CreateTime"://创建时间116this.CreateTime =117  118case"CreateUser"://创建人119this.CreateUser =120  121case"Serial"://序号(通道号)122this.Serial =123  124default:125  126}127}128}  View Code  另外也可以把对象转换成DataTable或Dataset 根据具体使用的情况进行具体的转换  1#region获取对象和对象转换成DataTable23///&summary&4///返回数据列5///&/summary&6///&param name="columnName"&&/param&7///&param name="caption"&&/param&8///&returns&&/returns&9publicstaticDataColumn AddDataColumn(stringcolumnName,stringcaption)10{11DataColumn dc =newDataColumn();1213dc.ColumnName =columnN14dc.Caption =9///&summary&20///获取表格的数据列21///&/summary&22///&param name="name"&&/param&23///&param name="caption"&&/param&24///&returns&&/returns&25publicstaticDataColumn GetColumn(stringname,stringcaption)26{27DataColumn dc =newDataColumn();2829dc.ColumnName =30dc.Caption =5///&summary&36///获取对象的属性名称、值和描述37///&/summary&38///&typeparam name="T"&对象的类型&/typeparam&39///&param name="t"&对象&/param&40///&returns&对象列表&/returns&41publicstaticList&Parameter& GetProperties&T&(T t)42{43List&Parameter& list =newList&Parameter&();4445if(t ==null)46{4748}49System.Reflection.PropertyInfo[] properties = t.GetType().GetProperties(System.Reflection.BindingFlags.Instance |System.Reflection.BindingFlags.Public);5051if(properties.Length &=0)52{5354}55foreach(System.Reflection.PropertyInfo iteminproperties)56{57stringname = item.N//名称58objectvalue = item.GetValue(t,null);//值59stringdes =string.E6061try62{63des = ((DescriptionAttribute)Attribute.GetCustomAttribute(item,typeof(DescriptionAttribute))).D//属性值64}65catch{ }6667if(item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith("String"))68{69Parameter parameter =newParameter();7071parameter.Name =72parameter.Value = value ==null?string.Empty : value.ToString();73parameter.Object =7475list.Add(parameter);76}77else78{79GetProperties(value);80}81}///&summary&86///87///&/summary&88///&typeparam name="T"&&/typeparam&89///&param name="t"&&/param&90///&param name="exceptArray"&&/param&91///&returns&&/returns&92publicstaticList&Parameter& GetProperties&T&(T t,string[] exceptArray)93{94List&Parameter& list =newList&Parameter&();9596if(t ==null)97{PropertyInfo[] properties = t.GetType().GetProperties(BindingFlags.Instance |BindingFlags.Public);101102if(properties.Length &=0)103{foreach(PropertyInfo iteminproperties)107{108stringname = item.N//名称109objectvalue = item.GetValue(t,null);//值110stringdes =string.E111112try113{114des = ((DescriptionAttribute)Attribute.GetCustomAttribute(item,typeof(DescriptionAttribute))).D//属性值115}116catch(Exception ex)117{118des =string.E119}120121if(item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith("String"))122{123if(!((IList)exceptArray).Contains(name))124{125Parameter parameter =newParameter();126127parameter.Name =128parameter.Value = value ==null?"": value.ToString();129parameter.Object =130131list.Add(parameter);132}133}134else135{136GetProperties(value);137}138}142///&summary&143///类型对象生成DataTable144///&/summary&145///&typeparam name="T"&&/typeparam&146///&param name="t"&&/param&147///&returns&&/returns&148publicstaticDataTable TToDataTable&T&(T obj, List&T&listT)149{150DataTable dt =newDataTable();151152intflag =0;153154if(listT !=null)155{156foreach(T tinlistT)157{158List&Parameter& listProperty = GetProperties&T&(t);159160if(flag &=0)161{162foreach(Parameter parameterinlistProperty)163{164flag++;165166dt.Columns.Add(GetColumn(parameter.Name, parameter.Object.ToString()));167}168}169170DataRow dr =dt.NewRow();171172foreach(Parameter parameterinlistProperty)173{174dr[parameter.Name] =parameter.V175}176177dt.Rows.Add(dr);178}179}180else181{182List&Parameter& listProperty = GetProperties&T&(obj);183184foreach(Parameter parameterinlistProperty)185{186dt.Columns.Add(GetColumn(parameter.Name, parameter.Object.ToString()));187}188189DataRow dr =dt.NewRow();190191foreach(Parameter parameterinlistProperty)192{193dr[parameter.Name] =parameter.V194}195196dt.Rows.Add(dr);197}1202///&summary&203///204///&/summary&205///&typeparam name="T"&&/typeparam&206///&param name="obj"&&/param&207///&returns&&/returns&208publicstaticDataTable TToDataTable&T&(T obj)209{210returnTToDataTable&T&(obj,null);211}212213///&summary&214///类型对象生成DataTable215///&/summary&216///&typeparam name="T"&&/typeparam&217///&param name="listT"&&/param&218///&returns&&/returns&219publicstaticDataTable TToDataTable&T&(List&T&listT)220{221returnTToDataTable&T&(default(T), listT);222}223224///&summary&225///生成参数226///&/summary&227///&param name="name"&&/param&228///&param name="value"&&/param&229///&returns&&/returns&230publicstaticParameter GetParameter(stringname,stringvalue)231{232Parameter parameter =newParameter();233234parameter.Name =235parameter.Value =}  View Code  要是客户端为bs架构,用一下代码进行发送  1///&summary&2///3///&/summary&4///&typeparam name="T"&&/typeparam&5///&param name="t"&&/param&6publicvoidSendDataObject&T&(T t)7{8stringjson =Newtonsoft.Json.JsonConvert.SerializeObject(t);910SendDataByJson(json);11}  View Code  具体的后端向前端发送的代码可以参考如下:  1#region公共方法2///&summary&3///向客户端发送数据4///&/summary&5///&param name="contentEncoding"&字符编码&/param&6///&param name="contentType"&输出流的MIME类型&/param&7///&param name="content"&输出的内容&/param&8publicvoidSendData(Encoding contentEncoding,stringcontentType,stringcontent)9{10Response.Clear();11Response.ContentEncoding =contentE12Response.ContentType =contentT13Response.Write(content);14Response.Flush();15Response.End();16}17///&summary&18///向客户端发送数据19///&/summary&20///&param name="content"&输出的内容&/param&21publicvoidSendData(stringcontent)22{23SendData(Encoding.UTF8,"application/json", content);24}2526publicvoidSendDataFile(stringfilePath,stringfileName)27{28System.IO.FileStream fs =newSystem.IO.FileStream(filePath, System.IO.FileMode.Open, System.IO.Fileaccess.Read);2930byte[] b =newByte[fs.Length];31fs.Read(b,0, b.Length);32fs.Flush();33fs.Close();3435Response.Clear();36Response.ClearHeaders();37Response.Clear();38Response.ClearHeaders();39Response.Buffer =40Response.ContentType ="application/octet-stream";41Response.AppendHeader("Content-Disposition","filename="+HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));42Response.AppendHeader("Content-Length", b.Length.ToString());43fs.Close();44fs.Close();45if(b.Length &0)46{47Response.OutputStream.Write(b,0, b.Length);48}49Response.Flush();50Response.End();51}52///&summary&53///通过json的形式发送文本54///&/summary&55///&param name="content"&要发送的内容&/param&56publicvoidSendDataByJson(stringcontent)57{58SendData(Encoding.UTF8,"application/json", content);59}60///&summary&61///向客户端发送数据62///&/summary&63///&param name="content"&输出的内容&/param&64publicvoidSendData(stringcontentType,stringcontent)65{66SendData(Encoding.UTF8, contentType, content);67}68///&summary&69///通过文本的形式发送文件70///&/summary&71///&param name="content"&要发送的内容&/param&72publicvoidSendDataByText(stringcontent)73{74SendData(Encoding.UTF8,"text/plain", content);75}76///&summary&77///处理错误消息78///&/summary&79///&param name="message"&要处理的消息&/param&80///&returns&处理之后的消息&/returns&81publicstringDealErrorMsg(stringmessage)82{83returnmessage.Replace((char)13, (char)0).Replace((char)10, (char)0).Replace("\"","'").Replace("\0","");84}8586#endregion  View Code相似文章&今日推荐&&&幽默笑话百态军事探索娱乐女性健康旅游互联网··············&主要记录工作当中遇到的一些问题和总结的一些经验
客户端请求--&web服务接口--&sql 语句执行(存储在数据库中)--&web服务(客户端通过调用web服务接口)--&返回DataTable或Dataset(sql server)--& 统一的DataTable或Dataset转换成对象--&提交给客户端(xml、json等等其他的)
1、首先通过sql语句返回结果,返回的结果一般都以Dataset的形式和DataTable的形式返回。
2、统一的DataTable或Dataset转换成对象
[flash=500,400]//sgevmlhtptp26.gif[/flash][url=http://www./it/detail_363911.html][img]http://image2./it/3.gif[/img][/url][flash=500,400]//uhca2d5w3h026.gif[/flash][url=http://www./it/detail_363911.html][img]http://image2./it/3.gif[/img][/url]1#region写对象信息23///&summary&4///5///&/summary&6///&typeparam name="T"&&/typeparam&7///&param name="tableName"&&/param&8///&returns&&/returns&9publicT WriteTObjectInfo&T&(stringtableName, DataRow dr,string[] exceptArray)10{11try12{13if(this.Status ==0)14{15thrownewException(this.Msg);16}1718T item = Activator.CreateInstance&T&();1920List&Parameter& listParameter = GetPRoperties&T&(item, exceptArray);2122foreach(Parameter pinlistParameter)23{24foreach(DataColumn dcinthis.dsResult.Tables[tableName].Columns)25{26if(dc.ColumnName ==p.Name)27{28Type type =item.GetType();2930MethodInfo method = type.GetMethod("SetAttributeValue");3132method.Invoke(item,newobject[] { p.Name, dr[p.Name].ToString().Trim() });33}34}35}catch(Exception ex)40{41thrownewException("写"+ Activator.CreateInstance&T&().ToString() +"信息发生错误,错误原因:"+ex.Message);42}43}4445///&summary&46///47///&/summary&48///&typeparam name="T"&&/typeparam&49///&param name="tableName"&&/param&50///&returns&&/returns&51publicT WriteTObjectInfo&T&(stringtableName)52{53try54{55if(this.Status ==0)56{57thrownewException(this.Msg);58}5960T item = Activator.CreateInstance&T&();6162if(this.dsResult.Tables.Contains(tableName))63{64DataRow dr =this.dsResult.Tables[tableName].Rows[0];6566List&Parameter& listParameter = GetProperties&T&(item);6768foreach(Parameter pinlistParameter)69{70foreach(DataColumn dcinthis.dsResult.Tables[tableName].Columns)71{72if(dc.ColumnName ==p.Name)73{74Type type =item.GetType();7576MethodInfo method = type.GetMethod("SetAttributeValue");7778method.Invoke(item,newobject[] { p.Name, dr[p.Name].ToString().Trim() });79}80}81}82}catch(Exception ex)87{88thrownewException("写"+ Activator.CreateInstance&T&() +"信息发生错误,错误原因:"+ex.Message);89}90}9192///&summary&93///94///&/summary&95///&typeparam name="T"&&/typeparam&96///&param name="tableName"&&/param&97///&returns&&/returns&98publicT WriteTObjectInfo&T&(stringtableName,string[] exceptArray)99{100try101{102if(this.Status ==0)103{104thrownewException(this.Msg);105}106107T item = Activator.CreateInstance&T&();108109if(this.dsResult.Tables.Contains(tableName))110{111DataRow dr =this.dsResult.Tables[tableName].Rows[0];112113List&Parameter& listParameter = GetProperties&T&(item, exceptArray);114115foreach(Parameter pinlistParameter)116{117foreach(DataColumn dcinthis.dsResult.Tables[tableName].Columns)118{119if(dc.ColumnName ==p.Name)120{121Type type =item.GetType();122123MethodInfo method = type.GetMethod("SetAttributeValue");124125method.Invoke(item,newobject[] { p.Name, dr[p.Name].ToString().Trim() });126}127}128}129}3catch(Exception ex)134{135thrownewException("写"+ Activator.CreateInstance&T&() +"信息发生错误,错误原因:"+ex.Message);136}137}138139///&summary&140///141///&/summary&142///&typeparam name="T"&&/typeparam&143///&param name="tableName"&&/param&144///&returns&&/returns&145publicList&T& WriteTObjectInfoList&T&(stringtableName,string[] exceptArray)146{147try148{149if(this.Status ==0)150{151thrownewException(this.Msg);152}153154List&T& list =newList&T&();155156if(this.dsResult.Tables.Contains(tableName))157{158foreach(DataRow drinthis.dsResult.Tables[tableName].Rows)159{160T item = WriteTObjectInfo&T&(tableName, dr, exceptArray);161162list.Add(item);163}164}8catch(Exception ex)169{170thrownewException("写"+ Activator.CreateInstance&T&().ToString() +"信息发生错误,错误原因:"+ex.Message);171}172}173174///&summary&175///176///&/summary&177///&typeparam name="T"&&/typeparam&178///&param name="tableName"&&/param&179///&returns&&/returns&180publicList&T& WriteTObjectInfoList&T&(stringtableName)181{182returnWriteTObjectInfoList&T&(tableName,newstring[] { });183}184185#endregion
以上代码统一用泛型实现
比较实用的获取属性的代码
[flash=500,400]//sgevmlhtptp26.gif[/flash][url=http://www./it/detail_363911.html][img]http://image2./it/7.gif[/img][/url][flash=500,400]//uhca2d5w3h026.gif[/flash][url=http://www./it/detail_363911.html][img]http://image2./it/8.gif[/img][/url]1///&summary&2///获取对象的属性名称、值和描述3///&/summary&4///&typeparam name="T"&对象的类型&/typeparam&5///&param name="t"&对象&/param&6///&returns&对象列表&/returns&7publicList&Parameter& GetProperties&T&(T t)8{9List&Parameter& list =newList&Parameter&();1011if(t ==null)12{1314}15PropertyInfo[] properties = t.GetType().GetProperties(BindingFlags.Instance |BindingFlags.Public);1617if(properties.Length &=0)18{1920}21foreach(PropertyInfo iteminproperties)22{23stringname = item.N//名称24objectvalue = item.GetValue(t,null);//值2526stringdes =string.E2728try29{30des = ((DescriptionAttribute)Attribute.GetCustomAttribute(item,typeof(DescriptionAttribute))).D//属性值31}32catch{ }3334if(item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith("String"))35{36Parameter parameter =newParameter();3738parameter.Name =39parameter.Value = value ==null?"": value.ToString();40parameter.Object =4142list.Add(parameter);43}44else45{46GetProperties(value);47}48}///&summary&53///54///&/summary&55///&typeparam name="T"&&/typeparam&56///&param name="t"&&/param&57///&param name="exceptArray"&&/param&58///&returns&&/returns&59publicList&Parameter& GetProperties&T&(T t,string[] exceptArray)60{61List&Parameter& list =newList&Parameter&();6263if(t ==null)64{6566}67PropertyInfo[] properties = t.GetType().GetProperties(BindingFlags.Instance |BindingFlags.Public);6869if(properties.Length &=0)70{7172}73foreach(PropertyInfo iteminproperties)74{75stringname = item.N//名称76objectvalue = item.GetValue(t,null);//值77stringdes =string.E7879try80{81des = ((DescriptionAttribute)Attribute.GetCustomAttribute(item,typeof(DescriptionAttribute))).D//属性值82}83catch(Exception ex)84{85des =string.E86}8788if(item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith("String"))89{90if(!((IList)exceptArray).Contains(name))91{92Parameter parameter =newParameter();9394parameter.Name =95parameter.Value = value ==null?"": value.ToString();96parameter.Object =9798list.Add(parameter);99}100}101else102{103GetProperties(value);104}105}106107}
基础的Parameter类
[flash=500,400]//sgevmlhtptp26.gif[/flash][url=http://www./it/detail_363911.html][img]http://image2./it/7.gif[/img][/url][flash=500,400]//uhca2d5w3h026.gif[/flash][url=http://www./it/detail_363911.html][img]http://image2./it/5.gif[/img][/url]1publicclassParameter2{3///&summary&4///名称5///&/summary&6privatestring_name =string.E78///&summary&9///获取或设置名称10///&/summary&11publicstringName12{13get{returnthis._ }14set{this._name = }15}1617///&summary&18///值19///&/summary&20privatestring_value =string.E2122///&summary&23///获取或设置值24///&/summary&25publicstringValue26{27get{returnthis._ }28set{this._value = }29}3031privateobject_object =323334publicobjectObject35{36get{returnthis._ }37set{this._object = }38}3940///&summary&41///构造函数42///&/summary&43///&param name="name"&名称&/param&44///&param name="value"&值&/param&45publicParameter(stringname,stringvalue)46{47this.Name =48this.Value =49}5051publicParameter(stringname,objectobj)52{53this.Name =54this.Object =55}5657///&summary&58///构造函数59///&/summary&60publicParameter()61{///&summary&66///67///&/summary&68///&returns&&/returns&69publicoverridestringToString()70{71returnstring.Format(@"名称(Name):{0},值(Value):{1},对象(Object):{2}",this.Name,this.Value,this.Object);72}73}
对象例子(这个对象例子的类,这个类其实和上面的DataTable和Dataset是对应的,通过以上的操作可以把DataTable或Dataset转换成具体的对象),因为这个类是比较统一的可以用代码生成工具可以直接生成
[flash=500,400]//sgevmlhtptp26.gif[/flash][url=http://www./it/detail_363911.html][img]http://image2./it/4.gif[/img][/url][flash=500,400]//uhca2d5w3h026.gif[/flash][url=http://www./it/detail_363911.html][img]http://image2./it/4.gif[/img][/url]1publicclassLog2{3#region属性45[Description("数据日志编号")]6publicstringLogID { }78[Description("设备编号")]9publicstringDeviceID { }1011[Description("设备名称")]12publicstringDeviceName { }1314[Description("质控项目编号")]15publicstringQCItemDicID { }1617[Description("质控项目中文名称")]18publicstringCNName { }1920[Description("质控项目英文名称")]21publicstringENName { }2223[Description("质控项目名称简拼码")]24publicstringJPM { }2526[Description("质控项目名称简拼码")]27publicstringNameAB { }2829[Description("质控项目单位")]30publicstringUnit { }3132[Description("设备质控编号")]33publicstringDev_QC_No { }3435[Description("设备质控序号")]36publicstringDev_QC_SequenceNo { }3738[Description("设备质控名称")]39publicstringDev_QC_Name { }4041[Description("质控时间")]42publicstringQCTime { }4344[Description("值类型")]45publicstringTextType { }4647[Description("数值")]48publicstringItemValue { }4950[Description("创建时间")]51publicstringCreateTime { }5253[Description("创建人")]54publicstringCreateUser { }5556[Description("序号(通道号)")]57publicstringSerial { }5859#endregion6061///&summary&62///设置属性值63///&/summary&64///&param name="name"&名称&/param&65///&param name="value"&值&/param&66publicvoidSetAttributeValue(stringname,stringvalue)67{68switch(name)69{70case"LogID"://数据日志编号71this.LogID =72
73case"DeviceID"://设备编号74this.DeviceID =75
76case"DeviceName"://设备名称77this.DeviceName =78
79case"QCItemDicID"://质控项目编号80this.QCItemDicID =81
82case"CNName"://质控项目中文名称Name =84
85case"ENName"://质控项目英文名称86this.ENName =87
88case"JPM"://质控项目名称简拼码89this.JPM =90
91case"NameAB"://质控项目名称简拼码92this.NameAB =93
94case"Unit"://质控项目单位95this.Unit =96
97case"Dev_QC_No"://设备质控编号98this.Dev_QC_No =99
100case"Dev_QC_SequenceNo"://设备质控序号101this.Dev_QC_SequenceNo =102
103case"Dev_QC_Name"://设备质控名称104this.Dev_QC_Name =105
106case"QCTime"://质控时间107this.QCTime =108
109case"TextType"://值类型110this.TextType =111
112case"ItemValue"://数值113this.ItemValue =114
115case"CreateTime"://创建时间116this.CreateTime =117
118case"CreateUser"://创建人119this.CreateUser =120
121case"Serial"://序号(通道号)122this.Serial =123
124default:125
126}127}128}
另外也可以把对象转换成DataTable或Dataset 根据具体使用的情况进行具体的转换
[flash=500,400]//sgevmlhtptp26.gif[/flash][url=http://www./it/detail_363911.html][img]http://image2./it/5.gif[/img][/url][flash=500,400]//uhca2d5w3h026.gif[/flash][url=http://www./it/detail_363911.html][img]http://image2./it/0.gif[/img][/url]1#region获取对象和对象转换成DataTable23///&summary&4///返回数据列5///&/summary&6///&param name="columnName"&&/param&7///&param name="caption"&&/param&8///&returns&&/returns&9publicstaticDataColumn AddDataColumn(stringcolumnName,stringcaption)10{11DataColumn dc =newDataColumn();1213dc.ColumnName =columnN14dc.Caption =9///&summary&20///获取表格的数据列21///&/summary&22///&param name="name"&&/param&23///&param name="caption"&&/param&24///&returns&&/returns&25publicstaticDataColumn GetColumn(stringname,stringcaption)26{27DataColumn dc =newDataColumn();2829dc.ColumnName =30dc.Caption =5///&summary&36///获取对象的属性名称、值和描述37///&/summary&38///&typeparam name="T"&对象的类型&/typeparam&39///&param name="t"&对象&/param&40///&returns&对象列表&/returns&41publicstaticList&Parameter& GetProperties&T&(T t)42{43List&Parameter& list =newList&Parameter&();4445if(t ==null)46{4748}49System.Reflection.PropertyInfo[] properties = t.GetType().GetProperties(System.Reflection.BindingFlags.Instance |System.Reflection.BindingFlags.Public);5051if(properties.Length &=0)52{5354}55foreach(System.Reflection.PropertyInfo iteminproperties)56{57stringname = item.N//名称58objectvalue = item.GetValue(t,null);//值59stringdes =string.E6061try62{63des = ((DescriptionAttribute)Attribute.GetCustomAttribute(item,typeof(DescriptionAttribute))).D//属性值64}65catch{ }6667if(item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith("String"))68{69Parameter parameter =newParameter();7071parameter.Name =72parameter.Value = value ==null?string.Empty : value.ToString();73parameter.Object =7475list.Add(parameter);76}77else78{79GetProperties(value);80}81}///&summary&86///87///&/summary&88///&typeparam name="T"&&/typeparam&89///&param name="t"&&/param&90///&param name="exceptArray"&&/param&91///&returns&&/returns&92publicstaticList&Parameter& GetProperties&T&(T t,string[] exceptArray)93{94List&Parameter& list =newList&Parameter&();9596if(t ==null)97{PropertyInfo[] properties = t.GetType().GetProperties(BindingFlags.Instance |BindingFlags.Public);101102if(properties.Length &=0)103{foreach(PropertyInfo iteminproperties)107{108stringname = item.N//名称109objectvalue = item.GetValue(t,null);//值110stringdes =string.E111112try113{114des = ((DescriptionAttribute)Attribute.GetCustomAttribute(item,typeof(DescriptionAttribute))).D//属性值115}116catch(Exception ex)117{118des =string.E119}120121if(item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith("String"))122{123if(!((IList)exceptArray).Contains(name))124{125Parameter parameter =newParameter();126127parameter.Name =128parameter.Value = value ==null?"": value.ToString();129parameter.Object =130131list.Add(parameter);132}133}134else135{136GetProperties(value);137}138}142///&summary&143///类型对象生成DataTable144///&/summary&145///&typeparam name="T"&&/typeparam&146///&param name="t"&&/param&147///&returns&&/returns&148publicstaticDataTable TToDataTable&T&(T obj, List&T&listT)149{150DataTable dt =newDataTable();151152intflag =0;153154if(listT !=null)155{156foreach(T tinlistT)157{158List&Parameter& listProperty = GetProperties&T&(t);159160if(flag &=0)161{162foreach(Parameter parameterinlistProperty)163{164flag++;165166dt.Columns.Add(GetColumn(parameter.Name, parameter.Object.ToString()));167}168}169170DataRow dr =dt.NewRow();171172foreach(Parameter parameterinlistProperty)173{174dr[parameter.Name] =parameter.V175}176177dt.Rows.Add(dr);178}179}180else181{182List&Parameter& listProperty = GetProperties&T&(obj);183184foreach(Parameter parameterinlistProperty)185{186dt.Columns.Add(GetColumn(parameter.Name, parameter.Object.ToString()));187}188189DataRow dr =dt.NewRow();190191foreach(Parameter parameterinlistProperty)192{193dr[parameter.Name] =parameter.V194}195196dt.Rows.Add(dr);197}1202///&summary&203///204///&/summary&205///&typeparam name="T"&&/typeparam&206///&param name="obj"&&/param&207///&returns&&/returns&208publicstaticDataTable TToDataTable&T&(T obj)209{210returnTToDataTable&T&(obj,null);211}212213///&summary&214///类型对象生成DataTable215///&/summary&216///&typeparam name="T"&&/typeparam&217///&param name="listT"&&/param&218///&returns&&/returns&219publicstaticDataTable TToDataTable&T&(List&T&listT)220{221returnTToDataTable&T&(default(T), listT);222}223224///&summary&225///生成参数226///&/summary&227///&param name="name"&&/param&228///&param name="value"&&/param&229///&returns&&/returns&230publicstaticParameter GetParameter(stringname,stringvalue)231{232Parameter parameter =newParameter();233234parameter.Name =235parameter.Value =}
要是客户端为bs架构,用一下代码进行发送
[flash=500,400]//sgevmlhtptp26.gif[/flash][url=http://www./it/detail_363911.html][img]http://image2./it/3.gif[/img][/url][flash=500,400]//uhca2d5w3h026.gif[/flash][url=http://www./it/detail_363911.html][img]http://image2./it/9.gif[/img][/url]1///&summary&2///3///&/summary&4///&typeparam name="T"&&/typeparam&5///&param name="t"&&/param&6publicvoidSendDataObject&T&(T t)7{8stringjson =Newtonsoft.Json.JsonConvert.SerializeObject(t);910SendDataByJson(json);11}
具体的后端向前端发送的代码可以参考如下:
[flash=500,400]//sgevmlhtptp26.gif[/flash][url=http://www./it/detail_363911.html][img]http://image2./it/1.gif[/img][/url][flash=500,400]//uhca2d5w3h026.gif[/flash][url=http://www./it/detail_363911.html][img]http://image2./it/1.gif[/img][/url]1#region公共方法2///&summary&3///向客户端发送数据4///&/summary&5///&param name="contentEncoding"&字符编码&/param&6///&param name="contentType"&输出流的MIME类型&/param&7///&param name="content"&输出的内容&/param&8publicvoidSendData(Encoding contentEncoding,stringcontentType,stringcontent)9{10Response.Clear();11Response.ContentEncoding =contentE12Response.ContentType =contentT13Response.Write(content);14Response.Flush();15Response.End();16}17///&summary&18///向客户端发送数据19///&/summary&20///&param name="content"&输出的内容&/param&21publicvoidSendData(stringcontent)22{23SendData(Encoding.UTF8,"application/json", content);24}2526publicvoidSendDataFile(stringfilePath,stringfileName)27{28System.IO.FileStream fs =newSystem.IO.FileStream(filePath, System.IO.FileMode.Open, System.IO.Fileaccess.Read);2930byte[] b =newByte[fs.Length];31fs.Read(b,0, b.Length);32fs.Flush();33fs.Close();3435Response.Clear();36Response.ClearHeaders();37Response.Clear();38Response.ClearHeaders();39Response.Buffer =40Response.ContentType ="application/octet-stream";41Response.AppendHeader("Content-Disposition","filename="+HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));42Response.AppendHeader("Content-Length", b.Length.ToString());43fs.Close();44fs.Close();45if(b.Length &0)46{47Response.OutputStream.Write(b,0, b.Length);48}49Response.Flush();50Response.End();51}52///&summary&53///通过json的形式发送文本54///&/summary&55///&param name="content"&要发送的内容&/param&56publicvoidSendDataByJson(stringcontent)57{58SendData(Encoding.UTF8,"application/json", content);59}60///&summary&61///向客户端发送数据62///&/summary&63///&param name="content"&输出的内容&/param&64publicvoidSendData(stringcontentType,stringcontent)65{66SendData(Encoding.UTF8, contentType, content);67}68///&summary&69///通过文本的形式发送文件70///&/summary&71///&param name="content"&要发送的内容&/param&72publicvoidSendDataByText(stringcontent)73{74SendData(Encoding.UTF8,"text/plain", content);75}76///&summary&77///处理错误消息78///&/summary&79///&param name="message"&要处理的消息&/param&80///&returns&处理之后的消息&/returns&81publicstringDealErrorMsg(stringmessage)82{83returnmessage.Replace((char)13, (char)0).Replace((char)10, (char)0).Replace("\"","'").Replace("\0","");84}8586#endregion
View Code&  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。&&&&&&&王朝美图& 07:03:50&&&&&&&转载本文&UBB代码&HTML代码复制到剪贴板...&更多内容··········&&&&频道精选&最新评论&&网友关注··········&&热点推荐&01&&02&&03&&04&&05&&06&&07&&08&&09&&10&&&&王朝女性&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝分栏&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝编程&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝导购&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝其他&&|&&|&&|&&|&&|&&|&&&&2005-&&版权所有&}

我要回帖

更多关于 没有caption属性的是 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信