次のエラーがあります。
ExecuteNonQuery では、コマンドに割り当てられた接続が保留中のローカル トランザクションにある場合、コマンドにトランザクションが必要です。コマンドのトランザクション プロパティが初期化されていません。
このエラーは、関数 executaComando で表示されます
私の機能保存:
public void save(string[] arr)//, int lista)
{
SqlConnection conexao = new SqlConnection(WebConfigurationManager.ConnectionStrings["strConexao"].ToString());
conexao.Open();
SqlTransaction trx = conexao.BeginTransaction();
try
{
//Truncate cliente_recurso
BUProjetosDAL dal = new BUProjetosDAL();
dal.excluirClientesRecurso(conexao);
dtsRecursoClienteTableAdapters.RECURSO_CLIENTETabelaTableAdapter tabela = new dtsRecursoClienteTableAdapters.RECURSO_CLIENTETabelaTableAdapter();
for (int j = 0; j <= 10; j++) { // <- here
tabela.Insert(arr);
}
trx.Commit();
}
catch (SqlException ex)
{
try
{
trx.Rollback();
}
catch (Exception exRollback)
{
Response.Write(exRollback.Message);
}
}
}
関数 excluirClientesRecurso
public void excluirClientesRecurso(SqlConnection conexao)
{
executaComando("TRUNCATE TABLE dbo.RECURSO_CLIENTE", conexao);
}
関数 executaComando (----ここにエラーが表示されます----)
public void executaComando(string query, SqlConnection conexao)
{
try
{
SqlCommand cmd = new SqlCommand(query);
cmd.Connection = conexao;
cmd.ExecuteNonQuery();
conexao.Close();
}
catch (Exception ex)
{
throw ex;
}
}