Inquiridor
Query não executa

Pergunta
-
Boa noite sr(a)s,
A função EnviarForm esta rodando sem erros mas não esta fazendo o que deveria fazer, no caso mandar o formulário para outro usuário, já teste a query
EXEC UTL_SEND_FORM
direto no banco e a mesma funcionou normalmente, e também coloquei breakpoints em todas as linhas de código para tentar identificar o problema mas infelizmente não deu erro algum, como sou novo no C# talvez tenha deixado passar algo, segue meu código:
namespace CustomCode { public class CustomCode { static void EnviarForm(int CodUser, int codContrato, int formNumber, DbConnection Cn, DbTransaction Tr) { try { Cn.Open(); var query = string.Format(@" EXEC UTL_SEND_FORM {0}, {1}, {2}", codContrato, formNumber, CodUser); var commandSendForm = new DbCommand(Cn, Tr, query); commandSendForm.ExecuteNonQuery(); } catch (Exception ex) { throw new Exception("Erro Função EnviarForm: " + ex.ToString()); } } static string Consulta(string coluna, string tabela, int codContrato, int formNumber, DbConnection Cn, DbTransaction Tr) { try { var query = string.Format(@" SELECT {0} FROM {1} WHERE CODCONTRATO = {2} AND CODCADASTRO = {3}", coluna, tabela, codContrato, formNumber); var command = new DbCommand(Cn, Tr, query); var da = new DbDataAdapter(command); var dt = new DataTable("Teste"); da.Fill(dt); var Resultado = dt.Rows[0].ItemArray[0]; return Resultado.ToString(); } catch (Exception ex) { throw new Exception("Erro Função Consulta: " + ex.ToString()); } } static public void Main(object[] parms) { DbConnection Cn = (DbConnection)parms[0]; DbTransaction Tr = (DbTransaction)parms[1]; CallerData callerData = (CallerData)parms[2]; Cad Cd = (Cad)parms[3]; ProviderProject providerProject = (ProviderProject)parms[4]; Form form = (Form)parms[5]; decimal defaultContract = (decimal)parms[6]; decimal formNumber = (decimal)parms[7]; IsvCadProvider svCadProvider = (IsvCadProvider)parms[8]; GetSetCadInputData getSetCadInputData = (GetSetCadInputData)parms[9]; string VALUESTableName = (string)parms[10]; string DICTTableName = (string)parms[11]; string USERSTableName = (string)parms[12]; string HEADERSTableName = (string)parms[13]; //Consulta de Aprovação Diretoria if (Consulta("KEY10", VALUESTableName, (int)defaultContract, (int)formNumber, Cn, Tr).Equals(string.Empty)) { Task.Factory.StartNew(() => { int codUser = 6291; Task.Delay(10000); EnviarForm(codUser, (int)defaultContract, (int)formNumber, Cn, Tr); }); } //Consulta de Aprovação Diretoria else if (Consulta("KEY10", VALUESTableName, (int)defaultContract, (int)formNumber, Cn, Tr).Equals("2950"))//2950 = Revisar { Task.Factory.StartNew(() => { Task.Delay(10000); //Consulta Codigo Usuário int CodUser = int.Parse(Consulta("CODUSR_CREATION", "CDTRAINING_HEADERS", (int)defaultContract, (int)formNumber, Cn, Tr)); EnviarForm(CodUser, (int)defaultContract, (int)formNumber, Cn, Tr); }); } } } }
Desde já agradeço as que compartilharem o conhecimento.
Todas as Respostas
-
Quando você debuga o dt.Rows[0] está retornando a primeira linha corretamente?
Att
- Sugerido como Resposta IgorFKModerator segunda-feira, 2 de dezembro de 2019 14:11
-
-
O problema é no ItemArray
Dá uma olhada nesse stackoverflow
https://stackoverflow.com/questions/30089523/datatable-itemarray-assignment-does-not-work