0
最初に閉じる必要があります私はDataReaderが、私はangularjsとMVC-5を使用しています
public SqlDataReader ExecuteSP_Reader(string ProcedureName, SqlCommand MyCommand)
{
if (con.State == ConnectionState.Closed)
con.Open();
MyCommand.CommandType = CommandType.StoredProcedure;
MyCommand.CommandText = ProcedureName;
//MyCommand.Connection = (SqlConnection)HttpContext.Current.Application["con"];
MyCommand.Connection = con;
SqlDataReader _Reader = MyCommand.ExecuteReader();
//con.Close();
return _Reader;
}
ような方法および他のクラスと呼ばれるタスクを持っているクラスDBFunction.csを持って
iは、クラスのメソッドから
public List<object>getdatabyuser(string UserAutoId=null)
{
cmd = new SqlCommand();
List<object> getdatauser = new List<object>();
if(!string.IsNullOrEmpty(UserAutoId))
cmd.Parameters.AddWithValue("@userautoid", UserAutoId);
SqlDataReader dr;
dr = dbf.ExecuteSP_Reader("TMS_GETTASKBYUSERNAME", cmd);
while(dr.Read())
{
getdatauser.Add(new
{
TaskName=dr["TaskName"].ToString(),
ParentAutoID=dr["ParentAutoID"].ToString(),
UserAutoId = dr["UserAutoId"].ToString(),
AssignBy=dr["AssignBy"].ToString(),
AssignTo=dr["AssignTo"].ToString()
});
}
dr.Close();
return getdatauser;
}
をデータベースからデータをフェッチしていますし、この中に他の層がある、私はdashboard.asmx
と呼ばれるWebサービスを使用しましたここ[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public void gettaskbyuser(string UserAutoId)
{
var json = "";
json = js.Serialize(objtask.getdatabyuser(UserAutoId));
Context.Response.Write(json);
}
私はここにangularjs
の私のコントローラにデータを送信し、JSON形式にデータを変換していますことは、
$http.get('/WebServices/dashboard.asmx/gettaskbyuser', {
params: {
UserAutoId: $scope.showparam.UserAutoId
}
}).then(function (response) {
$scope.getdatainmodal = response.data;
})
データは、ボタンのクリックで表示されます私のコントローラであり、
私はテーブル
Azhar 4
Das 1
Minesh 1
<td><a href="#" ng-click="showmodal(x)" data-toggle="modal" data-target="#myModal">{{ x.TaskCount }}</a></td>
を持っています0
私のテーブル内のタグがあり、ユーザーがそれをクリックすると、ため、モーダルは、データ
初めて正常に動作<table class="table table-bordered table-responsive">
<tr class="bg-primary">
<td><center><span class="glyphicon glyphicon-edit"></span></center></td>
<td>TaskName</td>
<td>User Name</td>
<td>AssignBy</td>
<td>AssignTo</td>
<td ng-hide="true">Parent Id</td>
</tr>
<tr ng-repeat="x in getdatainmodal">
<td><center><a href="#" class="btn btn-success">Edit</a></center></td>
<td>{{x.TaskName}}</td>
<td>{{x.UserAutoId}}</td>
<td>{{x.AssignBy}}</td>
<td>{{x.AssignTo}}</td>
<td ng-hide="true">{{x.ParentAutoID}}</td>
</tr>
</table>
でポップアップしますが、ユーザが第2の時間のためにそれを再度クリックしたとき他のユーザのレコード、それはおそらく未処理の例外が拒否
を示している。 {「データ」: "System.InvalidOperationExceptionが:最初に閉じる必要があります。このコマンドに関連付けられているオープン のDataReaderが既にあります。
このコードで何が間違っていますか?
MultipleActiveResultSets = Trueの値を設定しましたか? – nabuchodonossor
これは何ですか? –
[ASP.NETでネストされたSqlDataReaderを使用して[既に開いているDataReader]例外が発生する可能性があります](http://stackoverflow.com/questions/10854267/already-an-open-datareader-exception-with-nested-sqldatareader-in -asp-net) – nabuchodonossor