我有一個存儲過程作爲多個結果從SQL通過設置LINQ
pr___GetArchiveData
SELECT * FROM表1
SELECT * FROM TABLE2
SELECT * FROM表3
我想把這個結果集合成一個數據集。或者訪問三個select查詢的值! 我在這當我拖放存儲過程生成的代碼如下一個DBML文件: -
global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.pr___GetArchiveData")]
public ISingleResult<pr___GetArchiveDataResult> pr___GetArchiveData([global::System.Data.Linq.Mapping.ParameterAttribute(DbType="UniqueIdentifier")] System.Nullable<System.Guid> projectID)
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), projectID);
return ((ISingleResult<pr__Project_pr___GetArchiveData>)(result.ReturnValue));
}
在代碼MVC3建築+ LINQ我已經寫了代碼來獲得結果集如下: -
using (HBDataContext hb = new HBDataContext())
{
System.Data.DataSet ds = new System.Data.DataSet();
String connString = connString;
var conn = new System.Data.SqlClient.SqlConnection(connString);
var cmd = conn.CreateCommand();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "pr__GetArchiveData";
cmd.Connection.Open();
var mReader = cmd.ExecuteReader(System.Data.CommandBehavior.SequentialAccess);
//var reader = cmd.ExecuteReader();
//using (System.Data.SqlClient.SqlDataReader mReader = cmd.ExecuteReader())
//{
// while (mReader.Read())
//{
// mReader.Read();
var tbl1 = hb.Translate<tbl1 >(mReader).ToList();
// mReader = cmd.ExecuteReader();
mReader.NextResult();
var tbl2 = hb.Translate<tbl2 >(mReader).ToList();
mReader.NextResult();
var tbl3 = hb.Translate<tbl3>(mReader).ToList();
// }
// }
}
但在運行它會拋出錯誤的 -
「無效試圖調用NextResult當讀取器已關閉。」
我不知道我錯在哪裏!
我一直在使用它作爲同時試圖
(mReader.Read())
請建議!!!!
你看着使用SP功能pr___GetArchiveData,只是返回一個ISingleResult? – esastincy