webForumDet fria alternativet

SqlTransaction felmeddelande

.NET

0 svar · 420 visningar · startad av CokeLight

Medlem sedan juni 2000504 inlägg
Frågan#1

Får detta fel när jag vill använda SqlTransaction:

Körningen kräver att kommandot har ett transaktionsobjekt när anslutningen som tilldelats kommandot är en väntande lokal transaktion. Egenskapen Transaction i kommandot har inte initierats.

sökte lite på Google och på engelska så är felet detta:

Execute requires the command to have a transaction object when the connection assigned to the command is in a pending local transaction. The Transaction property of the command has not been initialized.

Hur ska jag initiera transaktionskommandot som felet klagar över..? Eller är det följdfel av något annat eller..?

public void InsertProcedure(string spName, IDataParameter[] parameters)
{
	this.SqlConnect.Open();
	SqlTransaction tran = this.SqlConnect.BeginTransaction(IsolationLevel.ReadCommitted);
	SqlCommand command = new SqlCommand(spName, this.SqlConnect, tran);
	command.CommandType = CommandType.StoredProcedure;
	command = this.BuildQueryCommand(spName, parameters);

	try
	{					
		command.ExecuteNonQuery();
		tran.Commit();
	}
	catch(Exception ex)
	{
		tran.Rollback();
		throw(ex);
	}
	finally
	{
		command.Parameters.Clear();
		this.SqlConnect.Close();
	}
}

(Tidigare hade jag en lite längre SP i själva SQL server men det var svårt att debugga tyckte jag så jag bröt ner SP'n i mindre delar och flyttade commit/rollback etc till C# koden istället men fick då detta fel istället * suck * :( ).

250 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)