none
Problema con LINQ en Windows Phone RRS feed

  • Pregunta

  • Estoy haciendo una aplicacion donde me enseñe una frase aleatoria  en pantalla al precionar el boton. Sucede que no se absolutamente nada de bases de datos en Windows Phone , a si que me he guiado por este vídeo http://www.youtube.com/watch?v=7fjjSIHfUiw   , pero en el se muestra para que salga todos los datos en un listbox , pero yo solo quiero que me encuentre a uno solo por vez y me muestre solo un dato, y ahí es donde estoy en problemas.

    La tabla es Amor , y tiene Id como llave principal y Frase como string.

    namespace ProyectoFrases
    {
        public partial class MainPage : PhoneApplicationPage
        {
            // Constructor
            public MainPage()
            {
                InitializeComponent();
               
                using (BaseDeDatosFrasesDataContext dataContext = new BaseDeDatosFrasesDataContext("Data source='isostore:/AmorDB.sdf'"))
                {
    
                    if (!dataContext.DatabaseExists())
                    {
                        dataContext.CreateDatabase();
    
                        List<Amor> amorObj = new List<Amor>()
                        {
                            new Amor()
                            {
                                Id = 1 , Frase = "Tardé una hora en conocerte y solo un día en enamorarme.Pero me llevará toda una vida lograr olvidarte."
                            },
    
                            new Amor()
                            {
                                Id = 2, Frase = "Si yo fuese el mar, y tu una roca, haría subir la marea, para besar tu boca."
                            }
    
                        };
    
                        dataContext.Amor.InsertAllOnSubmit(amorObj);
                        dataContext.SubmitChanges();
                        
    
                    }
    
    
    
    
    
    
                }
            }

    Bueno ahora en el boton es el problema, a si que busque mucho en este foro y encontre algo que creo que necesitaba.

     var cont = contextoDatos.Amor.Where(c => c.Id == 2).FirstOrDefault();


    private void BotonCorazon_Click(object sender, RoutedEventArgs e)
            {
            
                using (BaseDeDatosFrasesDataContext contextoDatos = new BaseDeDatosFrasesDataContext("Data source='isostore:/AmorDB.sdf'"))
                {
                   
               
            
                    var cont = contextoDatos.Amor.Where(c => c.Id == 2).FirstOrDefault();
    
              
                  if (cont != null)
                    {
                        textBlock1.Text = ("" + cont);
                        listBox1.ItemsSource = (""+cont);
                    }
                 
               
                }
    
            
                
            }

    Puse un Textblock y un ListBox para saber en cual de los dos me funcionaba. En el ListBox no salio nada, pero en el Texblock me aparece algo pero solo me el nombre del proyecto y la tabla osea proyectofrases.Amor  y es todo, ¿que puedo hacer?. Gracias.


    domingo, 24 de febrero de 2013 17:17

Todas las respuestas

  • En el ListBox no salio nada

    es logico el listbox espera una coleccion o lista, al usar FirsrOrDefault solo obtienes un unico item, no aplcia esto con controles de lista

    pero en el Texblock me aparece algo pero solo me el nombre del proyecto y la tabla osea proyectofrases.

    y si haces

     if (cont != null)
     {
        textBlock1.Text = cont.Frase;
                        
     }


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 24 de febrero de 2013 23:02
  • Hey gracias por responder, la verdad no se si sentirme triste o feliz , funcióno como tu dices, pero como era una bobada pues no me siento tan bien, aunque claro apenas estoy aprendiendo. Muchas gracias.
    lunes, 25 de febrero de 2013 18:42
  • No puedo marcar la respuesta
    miércoles, 27 de febrero de 2013 16:08