C# 通过Json对象动态返回数据集

C# 通过Json对象动态返回数据集,c#,asp.net-mvc,json,dataset,circular-reference,C#,Asp.net Mvc,Json,Dataset,Circular Reference,我有以下代码: GenericManager gm = new GenericManager(); DataSet ds = new DataSet(); ds = gm.ExecuteQuery(gr.TableName, gr.ColumnName, gr.WhereClause); return Json(ds, JsonRequestBehavior.AllowGet); 其中,ExecuteQuery是类GenericManager的方法,该类将返回数据集,并且该数据集将保存到对象d

我有以下代码:

GenericManager gm = new GenericManager();
DataSet ds = new DataSet();
ds = gm.ExecuteQuery(gr.TableName, gr.ColumnName, gr.WhereClause);
return Json(ds, JsonRequestBehavior.AllowGet);
其中,
ExecuteQuery
是类
GenericManager
的方法,该类将返回数据集,并且该数据集将保存到对象
ds

我正在实现一个功能,每次都会从不同的表中获取数据。这意味着要填充
数据集
,我要传递将数据填充到
数据集
中的表的名称。因此,我每次都必须从Json传递数据集,因为我不确定查询返回的列

如果我尝试通过Json返回数据集,则会引发以下异常:
序列化“System.Globalization.CultureInfo”类型的对象时检测到循环引用。

因此,我正在寻找将我的
数据集
传递到
Json
的方法

我已经尝试过的以下代码是:

return Json(ds.Tables[0].Rows[0], JsonRequestBehavior.AllowGet);
而且


请帮助修复它,因为我必须在一天结束前提交它

这对我帮助很大。对于遇到相同问题的人,我建议检查解决方案。

您不想返回
数据集。您想返回数据。虽然从一开始,
DataSet
s就可以进行XML序列化,但从来没有建议这样做,因为它们太特定于平台。是的@PauloMorgado但是为什么我要返回DataSet,因为我每次都必须从不同的表中选择数据,因为我在前端加入了类似sql的功能,用户可以从中选择表名并在那里写入
where
query,然后可以进行语句
GO
为什么不进行查询以明确选择要返回的内容?你真的想返回区域性信息吗?@PauloMorgado抱歉,我听不懂你的意思,你能再解释一下你想说什么吗?
来自ds中的t。Tables select new{Table=t.TableName,Data=from r in t。Rows select new{…}
 return Json(ds.Tables.AsQueryable(), JsonRequestBehavior.AllowGet);