C# SQL row verwijderen

Status
Niet open voor verdere reacties.

ferentuske

Gebruiker
Lid geworden
5 okt 2013
Berichten
78
Beste

Een sql row aanmaken werkt momenteel
maar een row verwijderen dan krijg ik een error

het is dus de bedoeling als ik in de textbox een naam invul hij die naam toevoegt dit werkt.
Maar als ik dan die naam terug in type en ik druk delete vlieg ik uit het programma.

hieronder staat mijn program.

https://app.box.com/s/c5jqj65i1p1h867trjst
 
Code:
public MainWindow()
        {
            InitializeComponent();
        }
        VoorbeeldContext c = new VoorbeeldContext();
        List<Product> producten = null;
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Load();
        }
        private void Load()
        {
            producten = c.Producten.Include("Categorie").ToList();
            dgProducten.ItemsSource = producten;
        }

        private void btnDelete_Click(object sender, RoutedEventArgs e)
        {
            Product delete = c.Producten.Where(p => p.Naam == tbDelete.Text).SingleOrDefault();
            c.Producten.Remove(delete);
            c.SaveChanges();
            Load();
        }


        private void btnCreate_Click(object sender, RoutedEventArgs e)
        {
            Product toeTeVoegen = new Product();
            toeTeVoegen.Naam = tbDelete.Text;
            toeTeVoegen.Beschrijving = "De origele stiltebeker";
            toeTeVoegen.Prijs = 100M;
            toeTeVoegen.Categorie = c.Categorieen.Find(5);
            toeTeVoegen.CategorieId = 5;
            c.Producten.Add(toeTeVoegen);
            c.SaveChanges();

        }

Dit moet je wel op weg brengen
 
inderdaad dit werkt.

en als je een row naam wil aanpassen hoe kan je dit dan simpel doen ?
 
Maak een button met een click event aan en plaats dit erin dit wekt met de selectie van je datagrid.
Je dan de SelectedItem ook toepassen voor je delete dan hoef je niet de naam in te geven.

Code:
Product wijzigen = (Product)dgProducten.SelectedItem;
            wijzigen.Naam = "gewijzigd";
            c.SaveChanges();
            Load();
 
die load herkent hij niet maar hij veranderd inderdaad de naam naar gewijzigt maar hij wil niet saven


zo werkt het wel

private void btnWijzigen_Click(object sender, RoutedEventArgs e)
{
VoorbeeldContext c = new VoorbeeldContext();
Product wijzigen = (Product)dgProducten.SelectedItem;
wijzigen.Naam = tbDelete.Text;
c.Producten.Add(wijzigen);
c.SaveChanges();

is dit ook een correcte oplossing met die Add ? of moet je toch iets anders gebruiken

Alvast bedankt
 
Laatst bewerkt:
ow blijkbaar veranderd hij hem wel maar maakt hij gwn alle rows opnieuw wat dus niet de bedoeling is
 
Ja inderdaad hij voegt dit toe. Dit zou toch moeten werken?
Code:
     public MainWindow()
        {
            InitializeComponent();
        }
        VoorbeeldContext c = new VoorbeeldContext();
        List<Product> producten = null;
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Load();
        }
        private void Load()
        {
            producten = c.Producten.Include("Categorie").ToList();
            dgProducten.ItemsSource = producten;
     
        }

        private void btnDelete_Click(object sender, RoutedEventArgs e)
        {
            Product delete = (Product)dgProducten.SelectedItem;
            c.Producten.Remove(delete);
            c.SaveChanges();
            Load();
        }


        private void btnCreate_Click(object sender, RoutedEventArgs e)
        {
            Product toeTeVoegen = new Product();
            toeTeVoegen.Naam = tbDelete.Text;
            toeTeVoegen.Beschrijving = "De origele stiltebeker";
            toeTeVoegen.Prijs = 100M;
            toeTeVoegen.Categorie = c.Categorieen.Find(5);
            toeTeVoegen.CategorieId = 5;
            c.Producten.Add(toeTeVoegen);
            c.SaveChanges();

        }


        private void btnWijzig_Click(object sender, RoutedEventArgs e)
        {
            Product wijzigen = (Product)dgProducten.SelectedItem;
            wijzigen.Naam = "gewijzigt";
            c.SaveChanges();
            Load();
        }
 
idd dit werkt maar met een textbox vind ik dit niet echt gebruiksvriendelijk.

Kan ik bv ook de prijs en naam apart aanpassen bv als ik op een naam in de datagrid klik en die aanpas en dan op de button wijzig klik dat hij aangepast word of is dit niet mogelijk ?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan