when i insert data to multiple table record inserted successfully .
But exception occor .
as "
This SqlTransaction has completed; it is no longer usable
my code is as bellow
"
string sqlMsg = string.Empty;
SqlTransaction trns = null;
try
{
using (con = new SqlConnection(clsConnection.GetSqlConnection()))
{
clsConnection.OpenSqlConnection(con);
trns = con.BeginTransaction(IsolationLevel.ReadCommitted);
using (cmd = new SqlCommand("Usp_Product", con,trns))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ActionMode", "Add");
cmd.Parameters.AddWithValue("@ProductName", objPd.productName);
cmd.Parameters.AddWithValue("@Caption", objPd.caption);
cmd.Parameters.AddWithValue("@Price", objPd.price);
cmd.Parameters.AddWithValue("@OfferPrice", objPd.offerPrice);
cmd.Parameters.AddWithValue("@Weight", objPd.weight);
cmd.Parameters.AddWithValue("@CategoryId", objPd.categoryId);
cmd.Parameters.AddWithValue("@Feature", objPd.feature);
cmd.Parameters.AddWithValue("@Image", objPd.image);
cmd.Parameters.AddWithValue("@Description", objPd.description);
cmd.Parameters.AddWithValue("@SupplierId", objPd.supplierId);
cmd.Parameters.AddWithValue("@IsNew", objPd.isNew);
cmd.Parameters.AddWithValue("@AddedBy", objPd.addedBy);
cmd.Parameters.Add("@SqlMsg", SqlDbType.NVarChar, -1).Direction = ParameterDirection.Output;
clsConnection.OpenSqlConnection(con);
cmd.ExecuteNonQuery();
sqlMsg = cmd.Parameters["@SqlMsg"].Value.ToString();
int pId = Convert.ToInt32(sqlMsg);
if (Convert.ToInt32(sqlMsg) > 0)
{
string[] cc = CatCollection.Split(',');
if (cc!=null && cc.Length > 0)
{
for (int i = 0; i < cc.Length; i++)
{
using (cmd = new SqlCommand("Usp_ProductCategory", con, trns))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ActionMode", "Add");
cmd.Parameters.AddWithValue("@ProductId", Convert.ToInt32(pId));
cmd.Parameters.AddWithValue("@CategoryId",Convert.ToInt32(cc[i].ToString()));
cmd.Parameters.Add("@SqlMsg", SqlDbType.NVarChar, -1).Direction = ParameterDirection.Output;
clsConnection.OpenSqlConnection(con);
cmd.ExecuteNonQuery();
sqlMsg = cmd.Parameters["@SqlMsg"].Value.ToString();
}
}
trns.Commit();
}
else
{
trns.Rollback();
}
}
else
{
trns.Rollback();
}
}
}
}
catch (Exception ex)
{
trns.Rollback();
sqlMsg = ex.Message;
}
finally
{
clsConnection.CloseSqlConnection(con);
}
return sqlMsg;