I mvc-5 mit AngularJS bin mit habe ich eine Klasse DBFunction.cs, in dem ich habe eine Methode, wieDatareader mit diesem Befehl zugeordnet sind, müssen zuerst geschlossen werden
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;
}
und eine andere Klasse namens Aufgabe
i die Daten aus der Datenbank von der Methode der Klasse
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;
}
und es gibt eine andere Schicht in dieser ist holen, habe ich eine Webservice namens dashboard.asmx
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public void gettaskbyuser(string UserAutoId)
{
var json = "";
json = js.Serialize(objtask.getdatabyuser(UserAutoId));
Context.Response.Write(json);
}
hier i die Daten in JSON-Format an Umwandlung ein, die Daten zu meinem Controller von AngularJS
Senden und hier ist mein Controller
$http.get('/WebServices/dashboard.asmx/gettaskbyuser', {
params: {
UserAutoId: $scope.showparam.UserAutoId
}
}).then(function (response) {
$scope.getdatainmodal = response.data;
})
die Daten werden auf Tastenklick angezeigt werden,
ich habe eine Tabelle
Azhar 4
Das 1
Minesh 1
<td><a href="#" ng-click="showmodal(x)" data-toggle="modal" data-target="#myModal">{{ x.TaskCount }}</a></td>
gibt es einen Tag in meinem Tisch und wenn der Benutzer das klicken, öffnet sich modal mit den Daten bis
<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>
, die zum ersten Mal gut funktioniert, aber wenn ein Benutzer klickt es wieder zum zweiten Mal, für andere Benutzer-Datensatz ist es ein Ausnahmen
Möglicherweise unhandled Ablehnung zeigt: { „Daten“: "System.InvalidOperationException: es gibt bereits eine offene Datareader mit diesem Befehl zugeordnet, der zuerst geschlossen werden muss.
Was ist in diesem Code falsch?
Haben Sie den Wert MultipleActiveResultSets = True festgelegt? – nabuchodonossor
Ich weiß nicht, was das ist? –
Mögliches Duplikat von ["bereits eine offene DataReader" -Ausnahme mit verschachteltem SqlDataReader in ASP.NET] (http://stackoverflow.com/questions/10854267/already-anopen-datareader-exception-with-nested-sqldatareader-in) -asp-net) – nabuchodonossor