【发布时间】:2015-10-31 10:00:36
【问题描述】:
我想将我检索到的数据转换成JSON;我正在使用SqlDataReader 进行检索。为此,我需要将我的数据存储到var。
我收到此错误:
“System.Reflection.AmbiguousMatchException”类型的异常发生在 mscorlib.dll 中,但未在用户代码中处理
附加信息:找到不明确的匹配项。
在以下代码中:
public string GetDetails(int Id)
{
var jsonDoc = "";
string con = "server=FACULTY01\\SQLSERVER2012ENT; database=SampleDb; uid=sa; pwd=sa9";
SqlConnection scon = new SqlConnection(con);
string qry = "Select * from Information where ID =" + Id;
SqlCommand cmd = new SqlCommand(qry, scon);
scon.Open();
SqlDataReader rdr = cmd.ExecuteReader();
var details = rdr;
JavaScriptSerializer jss = new JavaScriptSerializer();
jsonDoc = jss.Serialize(details);
scon.Close();
return jsonDoc;
}
【问题讨论】:
-
请显示完整堆栈跟踪。顺便说一句:1)你应该使用
using语句; 2) 你应该使用参数化 SQL。 -
@JonSkeet 亲爱的,我正在使用它,没有更多代码
-
或任何其他方法将
reader存储到var中?我只是想将重试数据存储到var以进行 JSON 序列化。 -
没有更多的代码并不意味着没有更多的堆栈跟踪。目前尚不清楚您的代码是否正在执行 - 也许这实际上是一个路由问题? (不清楚为什么你有一个
details变量,而不仅仅是调用jss.Serialize(rdr);- 这不像使用使用var声明的变量会改变任何东西。
标签: c# asp.net json serialization sqldatareader