Hallo Leute
Ich hab in meiner Applikation drei SqlDataAdapter welche mir Daten aus dem SqlServer 2000 beschaffen und soweit auch wunderbar funktionieren, die DataAdapters sowie die benötigte SqlConnection hab ich zur Design zit auf die Form ‚gedropt‘.
nun erstelle ich jedoch noch selber verschiedene SqlCommands und jedesmal wenn ich ein myConnection.BeginTransaction mache bekomme ich die Meldung „SqlConnection does not suport parallel transactions“ was so viel heisst das irgendwo noch eine offen ist. Das problem ist jedoch ich selber habe keine geöffnet! Daraus schliesse ich das etwas mit den SqlDataAdaptern nicht i.o. ist, jedoch wenn ich auf allen explizit .Dispose(), auch auf der connection aufrufe, so bewirkt das nichts. Ich habe es noch versucht mit einer neuen connection, aber sobald der connectionstring der gleiche ist wird sie ja ‚gePoolt‘. Ich bräuchte dringenst hilfe in dieser Sache.
hoffe jemand kann mir weiterhelfen
oh hier noch ein code snipset
public int getNewKey(string tableName)
{
int currentKey = 0;
string lookUpTable = ((DefaultConfig.pseudosequenceRow)SessState.defaultConfig.pseudosequence.Rows[0]).tablename;
SqlConnection con = new SqlConnection(this.conString);
con.Open();
SqlCommand newKeyCmd = con.CreateCommand();
SqlTransaction trans = con.BeginTransaction();
newKeyCmd.Transaction = trans;
try
{
newKeyCmd.CommandText = „SELECT * FROM dbo.“ + lookUpTable + " WHERE TableName="+tableName;
SqlDataReader dataReader = newKeyCmd.ExecuteReader();
dataReader.Read();
currentKey = Int32.Parse(dataReader[„NextKey“].ToString());
dataReader.Close();
//update the next free key value
newKeyCmd.CommandText = „UPDATE dbo.“ + lookUpTable + " SET NextKey ="+ (currentKey+1) +", ModifiedBy ="+ SessState.administratorName +", ModifiedDate ="+ System.DateTime.Now +" WHERE TableName =@keytablename";
newKeyCmd.ExecuteNonQuery();
trans.Commit();
}
catch(Exception e)
{
trans.Rollback();
string ww = „“;
}
finally
{
con.Close();
}
return currentKey;
}
oder hilfreich wäre in diesem fall auch wenn mir jemand sagen kann, am besten mit code beispiel, wie man die aktuelle transaction kriegt.
besten dank!!