• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Enity Framework i łączenie bazydanych

Object Storage Arubacloud
0 głosów
184 wizyt
pytanie zadane 10 listopada 2022 w SQL, bazy danych przez AtomBari Początkujący (440 p.)

Witam, mam mały-duży problem. Zamysł jest taki że kiedy jestem zalogowany to wtedy mogę dodać ogłoszenia ale jak zrobić aby dane ogłoszenie było przypisane do UserID? i tak samo categoria?

Poza tym nie bardzo wiem jak ma wyglądać wyszukiwanie.

Main Form:

public partial class BlocketForm : Form
    {
        private BlocketEntities1 _dbConnection;

        public static BlocketForm instance;
        public BlocketForm()
        {
            InitializeComponent();
            instance = this;
            InvisibleBtn();
        }

        private void LogSignBtn_Click(object sender, EventArgs e)
        {
            LoginForm log_In = new LoginForm();
            log_In.ShowDialog();
        }

        private void CloseBtn_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void NewAdvertBtn_Click(object sender, EventArgs e)
        {
            //Nie gotowe

            AdvertRepo repo = new AdvertRepo();
            Category category = new Category();

            if (TitleBox.Text != "")
            {

                Advert advert = new Advert();
                advert.Title = TitleBox.Text;
                advert.Price = PriceBox.Text;
                advert.Description = DescriptionBox.Text;
                category.CategoryName = CategoryComboBox.SelectedItem.ToString();

                repo.InsertNewAdvert(advert);
            }
            else
            {
                MessageBox.Show("All informations must be filled");
            }
        }

        private void UpdateBtn_Click(object sender, EventArgs e)
        {
            //Nie gotowe

            int advertID = int.Parse(listBox1.SelectedValue.ToString());

            AdvertRepo repo = new AdvertRepo();
            Advert advert = new Advert();
            Category category = new Category();
            advert.AdvertID = advertID;
            advert.Title = TitleBox.Text;
            advert.Price = PriceBox.Text;
            advert.Description = DescriptionBox.Text;
            category.CategoryName = CategoryComboBox.SelectedItem.ToString();
            repo.UpdateAdverts(advert);
        }

        private void DeleteBtn_Click(object sender, EventArgs e)
        {
            int advertID = int.Parse(listBox1.SelectedValue.ToString());

            AdvertRepo repo = new AdvertRepo();
            Advert advert = new Advert();
            repo.DeleteAdvert(advertID);
        }
        private void ShowMyBtn_Click(object sender, EventArgs e)
        {
            try
            {
                int advertID = int.Parse(listBox1.SelectedValue.ToString());
                AdvertRepo repo = new AdvertRepo();
                Advert adverts = repo.GetAdverts(advertID);

                listBox1.DisplayMember = "Title" + " " + "Price" + " " + "Description";
                listBox1.ValueMember = "UserID";
                listBox1.DataSource = repo.GetAdverts(advertID);
            }
            catch (Exception)
            {

                MessageBox.Show("Error");
            }   
        }
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Nie gotowe

            int advertID = int.Parse(listBox1.SelectedValue.ToString());
            AdvertRepo repo = new AdvertRepo();
            Advert adverts = repo.GetAdverts(advertID);

            TitleBox.Text = adverts.Title;
            PriceBox.Text = adverts.Price;
            DescriptionBox.Text = adverts.Description;
        }
        private void SearchBtn_Click(object sender, EventArgs e)
        {
            //Nie gotowe

            Advert advert = new Advert();

            var items = _dbConnection.Adverts.Where(x => x.Title.Contains(SearchBox.Text));


        }

Registry form:

 private void SaveBtn_Click(object sender, EventArgs e)
        {
            UserRepo repo = new UserRepo();

            if (UserBox.Text != "")
            {

                User user= new User();
                user.Username = UserBox.Text;
                if (PassBox.Text != ConfirmPassBox.Text)
                {
                    MessageBox.Show("Not same password");
                }
                else
                user.Password = PassBox.Text;

                repo.InsertNewUser(user);
            }
            else
            {
                MessageBox.Show("Username and password must be filled");
            }
        }
public void InsertNewUser(User user)
        {
            _dbConnection.Users.Add(user);

            _dbConnection.SaveChanges();
        }

1 odpowiedź

0 głosów
odpowiedź 10 listopada 2022 przez tomek2323 Bywalec (2,050 p.)
W czym masz dokładnie problem    nie wiesz jak dodawać dane do bazy czy jak zdefiniować relacje?
komentarz 10 listopada 2022 przez AtomBari Początkujący (440 p.)
Dodaje dane do bazy danych ale np nie wiem jak połączyć dane "ogłoszenie" z danym userem z jego ID.

Chodzi o to ze kiedy dany użytkownik się loguję i tworzy ogłoszenie to to ogłoszenie powinno być przypisane do jego konta do jego userID ale nie wiem jak to zrobić.
komentarz 11 listopada 2022 przez tomek2323 Bywalec (2,050 p.)
Musisz mieć powiązanie  jeden do wielu miedzy User a Ogłoszeniem wtedy po id wyszukujesz Usera i do niego dodajesz ogłoszenie.

https://www.entityframeworktutorial.net/efcore/configure-one-to-many-relationship-using-fluent-api-in-ef-core.aspx

Podobne pytania

+1 głos
1 odpowiedź 257 wizyt
pytanie zadane 4 marca 2021 w SQL, bazy danych przez Mateusz Wydra Nowicjusz (240 p.)
0 głosów
1 odpowiedź 1,176 wizyt
pytanie zadane 17 grudnia 2016 w C# przez pablocity Początkujący (330 p.)
+1 głos
0 odpowiedzi 133 wizyt
pytanie zadane 1 maja 2021 w PHP przez Filipczak Gaduła (4,020 p.)

92,551 zapytań

141,399 odpowiedzi

319,529 komentarzy

61,937 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...