none
classe de validação com não respode RRS feed

  • Pergunta

  • fiz uma classe de validação em c# com linq, porem a validação eu consigo fazer, porem na cada de visão, entao fiz uma classe só para isso, porem não da nenhum erro, porem não grava e sempre faz o verdadeiro do if:



    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    using System.Collections.ObjectModel;

    namespace WpfApplication1
    {
        /// <summary>
        /// Interaction logic for Window1.xaml
        /// </summary>
        public partial class Window1 : Window
        {
            UsuarioModelDataContext dc = new UsuarioModelDataContext();

            ObservableCollection<Usuario>useLista = new

                ObservableCollection<Usuario>();
            Usuario use = new Usuario();

            //public KeyboardHook kb;

            public Window1()
            {
                InitializeComponent();

                foreach (var c in dc.Usuarios)
                {

                    useLista.Add(c);

                }

                listBox1.ItemsSource = useLista;
               
            }
          
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                Usuario use = new Usuario() { Nome = "Ainda não salvo" };

                dc.Usuarios.InsertOnSubmit(use);

                useLista.Add(use);
            }

            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                if (listBox1.SelectedItem != null)
                {

                    Usuario use = (Usuario)listBox1.SelectedItem;
                   
                    //use.Usuario.Clear();

                    dc.Usuarios.DeleteOnSubmit((Usuario)listBox1.SelectedItem);

                    useLista.Remove((Usuario)listBox1.SelectedItem);

                }
               
            }

            private void button3_Click(object sender, RoutedEventArgs e)
            {



                validaçãoUsuario vali = new validaçãoUsuario();
                vali.c_usuario();
               
                /*Usuario use1 = new Usuario();
                if(Nome.Text == String.Empty){

                Window2 win = new Window2();
                win.Show();
               
                }
               
                    //useLista.Add(use1);
                    //dc.Usuarios.InsertOnSubmit(use1);
                else{
                    dc.SubmitChanges();*/
                }
               
            }
           
          

            private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                //kb = new KeyboardHook();
               // kb.HookKeyboard();
            }
            
        }
    }




    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections.ObjectModel;

    namespace WpfApplication1
    {
        class validaçãoUsuario
        {

            UsuarioModelDataContext dc = new UsuarioModelDataContext();

            ObservableCollection<Usuario> useLista = new

                ObservableCollection<Usuario>();
            Usuario use = new Usuario();



            public  void c_usuario()
            {
                Window1 win1 = new  Window1();
                if (win1.Nome.Text == String.Empty)
                {

                    Window2 win = new Window2();
                    win.Show();

                }

                else
                {


                    useLista.Add(use);
                    dc.Usuarios.InsertOnSubmit(use);
                    dc.SubmitChanges();
                }


            }
        }
    }


    pq não da erro e simplismente não grava e sempre entra no verdadeiro do if??

    sera que não devo usar void para isso?



    desculpa coloquei no lugar errado alguem pode colocar no forum c#?

    Aprendendo e evoluindo
    terça-feira, 13 de outubro de 2009 01:53

Todas as Respostas

  • Olá,

    Você já debugou o código? Viu que valor chega no seu if?

    O erro é de lógica. Caso não tenha debugado... Debug... caso não saiba debugar... dê uma pesquisada: Asp.Net Debugging... ou C# Debugging....

    Abraço!
    Roberto Santos http://blog.robertoosantos.com
    terça-feira, 13 de outubro de 2009 11:01
  • Thiago,

    Sim, sempre vai entrar no if, já que você criou uma nova instância da classe Window. É óbvio que o campo Text estará vazio. Você não utilizou a instância da janela aberta.

    Quanto a sua dúvida do void, o ideal seria que retornasse um boolean. Você colocou como responsabilidade da classe de validação fazer a atualização do usuário, o que é incorreto.

    Sugestão: faça a validação na própria janela (Window1).

    Att.

    Ari C. Raimundo
    • Sugerido como Resposta Ari C. Raimundo quarta-feira, 14 de outubro de 2009 17:36
    terça-feira, 13 de outubro de 2009 12:50