Problem z pobraniem wartości z bazy danych sql server przez

Dyskusje na temat języka C# oraz biblioteki .NET
kunegundek
Początkujący
Początkujący
Posty: 23
Dołączył(a): poniedziałek, 18 czerwca 2012, 22:16
Lokalizacja: Nasale (Opolskie)

Problem z pobraniem wartości z bazy danych sql server przez

Post przez kunegundek »

Witam,
Uczę się aktualnie łączenia WPF c# z bazami danych. Na podstawie tego piszę aplikację na uczelnię, jednakże pojawił się pewien problem. O ile zapisywanie do bazy danych zachodzi bez zarzutu, tak odczyt z niej jest dla mnie kłopotliwy. Spędziłem już kilka godzin nad znalezieniem rozwiązania, ale jak na razie bez skutku. Początkowo miałem problem z pobraniem wartości z bazy danych do comboboxa w jednym okienku, pokombinowałem i udało się w końcu to ogarnąć, ale pojawił się kolejny problem - jak różnymi sposobami chce pobrać wartość wybranego pola combobox, czy też po prostu wartość z bazy danych poprzez Linq, zamiast otrzymać ową wartość, otrzymuje zwrotnie nazwa_bazy_danych.nazwa_tabeli (w moim przypadku plastus.posts). Macie jakies pomysły, jak to ogarnąć? Poniżej zamieszczam kod. Sorki za sporo kodu - śmieci w komentarzach, ale są tam niektóre użyte pomysły, które też nie działały, ale zostawiłem je "na później", w razie jakbym chciał na nich jeszcze pracować. Bazę danych utworzyłem w sql server. Bardzo prosze Was o pomoc, bo powoli kończą mi sie pomysły jak i tutki na necie, a chce to skończyć (i nauczyć się w 100% podstaw robienia tego typu aplikacji, abym potem mógl się w tym rozwijać)

Kod window1.xaml.cs

Code: Zaznacz cały

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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.Shapes;

namespace plastusiowy_pamietnik
{
    /// <summary>
    /// Logika interakcji dla klasy Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        DateTime kal;

        public Window1()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {

        }

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            /*

             var context = new plastusEntities2();

            var post = new posts()
            {

                title = WpisTytul.Text,
                text = WpisText.Text,
                tags = tags.Text,
                whenAdded = DateTime.Now

            };
            context.posts.Add(post);
            context.SaveChanges();

             var idPosta = context.posts
            .Where(b => b.title == WpisTytul.Text)
            .Select(s => s.id);*/

            DateTime kal = (DateTime)kalendarz.SelectedDate;

            Window2 third = new Window2(kal);
            third.ShowDialog();

        }

    }
}
Kod window2.xaml.cs:

Code: Zaznacz cały

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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.Shapes;

namespace plastusiowy_pamietnik
{
    /// <summary>
    /// Logika interakcji dla klasy Window2.xaml
    /// </summary>
    public partial class Window2 : Window
    {

        public Window2(DateTime kal)
        {
            InitializeComponent();

            /*
            using (plastusEntities2 ctx = new plastusEntities2())
            {
                var zapytanie = ctx.posts.ToList().Select(m => m).ToList();

                lista.ItemsSource = zapytanie.ToString();
                lista.DisplayMemberPath = "title";
            }
            */

            plastusEntities2 dc = new plastusEntities2();
            var stu = from plastusEntities2 in dc.posts where plastusEntities2.whenAdded == kal
                      select plastusEntities2;

            lista.ItemsSource = stu.ToList();
            lista.DisplayMemberPath = "title";

        }
        //var zapytanie = ctx.posts.ToList().Select(m => m).Where(b => b.whenAdded == kalendarz).ToList();

        private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

        }
        private void pobierzPoDacie()
        {
            /*
            List<posts> posty = new List<posts>();

            var context = new plastusEntities2();

            posty = context.posts.Where(b => b.whenAdded == kalendarz).Select(s => s).ToList();

            if (String.IsNullOrEmpty(posty.ToString()))
                MessageBox.Show(":)");
                */

        }

        private void wybierz_Click(object sender, RoutedEventArgs e)
        {
            /*
            plastusEntities2 dc = new plastusEntities2();
            var stu = from plastusEntities2 in dc.posts
                      where plastusEntities2.id == lista.SelectedIndex+1
                      select plastusEntities2;
                      */

            //string tytul = lista.Items[lista.SelectedIndex].ToString();
            string tytul = lista.Items[lista.SelectedIndex].ToString();

            plastusEntities2 dc = new plastusEntities2();
            var stu = from plastusEntities2 in dc.posts
                      where plastusEntities2.title == tytul
                      select plastusEntities2;

            MessageBox.Show(lista.Items[lista.SelectedIndex].ToString());

            foreach (var cust in stu)
            {
                title.Text = cust.title;
                text.Text = cust.text;
            }
        }
        /*
private void lista_Loaded(object sender, RoutedEventArgs e)
{

}*/
    }
}
Post Reply