Inquiridor
Retornar exception sql para exibir na tela da aplicação

Pergunta
-
Olá a Todos!
Tenho uma aplicação em WPF que cada transação chama um WCF que chama os métodos em uma classe (DAL) com todos os acessos ao banco e retorna pra aplicação.
Por Exemplo:
Na aplicação:
using (TransactServiceClient service = new TransactServiceClient()) { try { lvAniversarios.Items.Clear(); List<Cliente> lista = service.Lista_Clientes().Where(l => l.Dt_Nasc.Month == DateTime.Today.Month && l.Dt_Nasc.Day >= DateTime.Today.Day).ToList(); lista = lista.OrderBy(e => e.Dt_Nasc.Day).ThenBy(e => e.Dt_Nasc.Month).ToList(); for (int j = 0; j < lista.Count; j++) { if (lista[j].Dt_Nasc.Month == DateTime.Today.Month && lista[j].Dt_Nasc.Day == DateTime.Today.Day) { ListViewItem item = new ListViewItem(); item.Content = lista[j].Dt_Nasc.Day.ToString().PadLeft(2, '0') + "/" + lista[j].Dt_Nasc.Month.ToString().PadLeft(2, '0') + " - " + lista[j].Nome; item.Foreground = new SolidColorBrush(Colors.Yellow); lvAniversarios.Items.Add(item); } else lvAniversarios.Items.Add(lista[j].Dt_Nasc.Day.ToString().PadLeft(2, '0') + "/" + lista[j].Dt_Nasc.Month.ToString().PadLeft(2, '0') + " - " + lista[j].Nome); } lvAniversarios.SelectionMode = SelectionMode.Single; } catch (Exception ex) { service.Abort(); MessageBox.Show(ex.ToString(),"Erro!"); } }
No Serviço
[ServiceContract] public class TransactService { [OperationContract] public List<Cliente> Lista_Clientes() { return DALC.Lista_Clientes(); } }
Na DALC.
public static List<Cliente> Lista_Clientes() { using (SqlConnClass.obterConexao()) { try { SqlCommand com = new SqlCommand("select * from Clientes", SqlConnClass.obterConexao()); var reader = com.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(reader); List<Cliente> lista_cliente = new List<Cliente>(); foreach (DataRow row in dt.Rows) { lista_cliente.Add(BindCliente(row)); } return lista_cliente; } catch (SqlException ex) { throw ex; } } }
Gostaria de saber uma forma de exibir uma exception SQL, quando ocorrer, que acontecer na DAL na tela do usuário da aplicação WPF. No retorno do método do WCF creio que não vai rolar pois todos os meus operations contracts da WCF retornam sempre um tipo lista.
Obrigado
Todas as Respostas
-
-
Use os exception de SQL para o cacth
try { command.Connection.Open(); command.ExecuteNonQuery(); } catch (SqlException ex) { for (int i = 0; i < ex.Errors.Count; i++) { errorMessages.Append("Index #" + i + "\n" + "Message: " + ex.Errors[i].Message + "\n" + "LineNumber: " + ex.Errors[i].LineNumber + "\n" + "Source: " + ex.Errors[i].Source + "\n" + "Procedure: " + ex.Errors[i].Procedure + "\n"); } Console.WriteLine(errorMessages.ToString()); }
If the answer was helpful vote
- Editado Jean LLopes terça-feira, 12 de janeiro de 2016 00:12
- Sugerido como Resposta Jean LLopes terça-feira, 12 de janeiro de 2016 00:13