当前位置: 首页 > 编程语言 > C#

在C#中解析动态SQL并在ASP.Net MVC中绑定到WebGrid分享

时间:2023-04-11 10:33:30 C#

C#学习教程:在C#中解析动态SQL并在ASP.NetMVC中绑定WebGrid我有使用pivot生成结果的动态SQL查询,结果集可能是这样的:NameDiv1Div2Div3Div4Div5Active10000Busy00001NA01000Suspended00010There可以是n个分区。我想将此数据与ASP.NETMVCWebGrid控件绑定。我不能这样做。我的C#代码如下:dynamiclist=db.ExecuteStoreQuery("exec[dbo].[proc_GetData]").ToList();返回列表;我想用ASP.NETMVCWebgrid绑定这个列表,我的webgrid代码如下:WebGridgrid=newWebGrid(Model.DataList);列表列表=新列表();list.Add(newWebGridColumn{Header="Name",ColumnName="Name"});foreach(variteminModel.DivList){list.Add(newWebGridColumn{Header=item,ColumnName=item});}@grid.GetHtml(tableStyle:"webgrid",alternatingRowStyle:"webgrid-alternating-row",headerStyle:"webgrid-header",footerStyle:"webgrid-footer",selectedRowStyle:"webgrid-selected-row",rowStyle:"webgrid-row-style",columns:col);这是行不通的。请帮助我如何完成这项任务。谢谢。您必须在ExecuteStoreQuery中指定类型(类和固定属性)。您也可以使用另一个选项。我用四个简单的步骤来解释它:1)将结果集检索到DataTableprivateDataTableGetResultReport(){DataTableretVal=newDataTable();EntityConnectionentityConn=(EntityConnection)db.Connection;SqlConnectionsqlConn=(SqlConnection)entityConn.StoreConnection;使用(SqlCommandcmdReport=sqlConn.CreateCommand()){cmdReport.CommandType=CommandType.StoredProcedure;cmdReport.CommandText="proc_GetData";SqlDataAdapterdaReport=newSqlDataAdapter(cmdReport);使用(cmdReport){daReport.Fill(retVal);}}返回retVal;}2)将DataTable转换为IDictionary类型的列表privateListConvertToDictionary(DataTabledtObject){varcolumns=dtObject.Columns.Cast();vardictionaryList=dtObject.AsEnumerable().Select(dataRow=>columns.Select(column=>new{Column=column.ColumnName,Value=dataRow[column]}).ToDictionary(data=>data.Column,data=>数据.Value)).ToList().ToArray();返回dictionaryList.ToList();}3)然后循环遍历IDictionary类型的List,添加到Dynamic类型的List中,这样将其与webgrid绑定:publicListGetData(){varresultset=ConvertToDictionary(GetResultReport());变种结果=新列表();foreach(varemprowinresultset){varrow=(IDictionary)newExpandoObject();字典eachRow=(Dictionary)emprow;foreach(KeyValuePairkeyValuePairineachRow){row.Add(keyValuePair);}结果。添加(行);}返回结果;}4)视图(.cshtml)中的WebGrid绑定代码:以上是C#学习教程:在C#中解析动态SQL,在ASP.NetMVC中绑定到WebGrid。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——WebGridgrid=newWebGrid(Model.OfficerOverViewList,rowsPerPage:5);@grid.GetHtml(tableStyle:“webgrid”,alternatingRowStyle:“webgrid-alternating-row”,headerStyle:“webgrid-header”,footerStyle:“webgrid-footer”,selectedRowStyle:“webgrid-selected-row”,rowStyle:“webgrid-行样式");本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢