不知道我的问题是否正确或我的计划是否正确,但我正在使用jquery
数据广告插件并从datasource
转换Json
获取LINQ
结果。
我的问题是,我的结果集包含我的数据表(ado)中的列的名称,我认为Jquery DataTable(客户端)不需要。
在将它转换为json之前,我是否可以在LINQ结果中包含或删除列名?
这是我的服务器代码。
context.Response.ContentType = "application/json";
var y = from t in dt select t;
ret = JsonConvert.SerializeObect(y, Formatting.None);
context.Response.Write(ret);
上面的代码返回包含所有列名的结果。我也在使用JSON.NET
以下是我如何填充我的dt
dsTableAdapters.dtTableAdapter adap = new dsTableAdapters.dtTableAdapter();
adap.Fill(ds.dt);
输出JSON:
[
[
"COL1": 1,
"COL2": "R1C2"
},
{
"COL1: 2,
"COL2": "R2C2"
},
{
"COL1": 3,
"COL2": "R3C3"
}
]
基于jquery Datatable插件的必需输出必须是:
[
[
1,
"R1C2"
],
[
2,
"R2C2"
],
[
3,
"R3C3"
]
]
答案 0 :(得分:0)
var y = (from t in dt.AsEnumerable()
select new { COL1= t.Field<string>("FirstName"),
COL2 = t.Field<string>("LastName") }).ToList();
假设dt是你的DataTable,你有2列名为FirstName和LastName,你只想输出那些。
这会奏效。测试
http://msdn.microsoft.com/en-us/library/system.data.datatableextensions.asenumerable.aspx
DataTable上的AsEnumerable
扩展方法将返回DataRows集合。然后使用必填字段从Linq结果中进行投影。由于它是dataRow类型,因此您需要指定每个列类型的内容。