Zum Inhalt springen

DS aus DB löschen in c#


SSchäfer

Empfohlene Beiträge

morgen leute,

ich arbeite erst sei 1 woche mit c#.

ich brauche dringend eure hilfe. u zwar muss ich ein bestehendes programm bearbeiten ( in c# geschrieben u VS 2008) u habe keine ahnung, wie ich aus der bereits bestehenden Datenbank einen datensatz komplett löschen kann.

habe mich auch schon durch foren u büchern gekämpft, aber das ganze führte nicht zum gewünschten erfolg.

jedoch kann ich bereits templetes speichern.

hier mal der code wie gefüllt wird:

 private void fillUsertree()

        {

            Log.InfoEnter("heidiGmbH.Psv.PasRoles.RolesForm.FillUsertree");

            Cursor.Current = Cursors.WaitCursor;


            try

            {

                // Evtl. vorhandene Einträge löschen


                TreeNode userRoot = this.userTree.Nodes[0];

                userRoot.Nodes.Clear();

                TreeNode groupRoot = this.userTree.Nodes[1];

                groupRoot.Nodes.Clear();


                TreeNode templateRoot = this.userTree.Nodes[2];

                templateRoot.Nodes.Clear();



                // Werte neu aus der DB holen und TreeView damit füllen

                fillNodes(userRoot, ItemType.User);

                fillNodes(groupRoot, ItemType.Group);

                fillNodes(templateRoot, ItemType.Template);

            }

            finally

            {

                Cursor.Current = Cursors.Default;

                Log.InfoLeave("heidiGmbH.Psv.PASRoles.RolesForm.FillUsertree");

            }

        }


        /// <summary>

        /// Hilfsunktion für fillUsertree(). Führt die Füllaktion für jeden Item-Type (Benutzer, Gruppe, Vorlage) aus.

        /// </summary>

        /// <param name="nodeRoot">Wurzelknoten unter den die Objekte eingefüllt werden</param>

        /// <param name="itemType">Benutzer, Gruppe oder Vorlage</param>

        private void fillNodes(TreeNode nodeRoot, ItemType itemType)

        {

            // Liste der pas.net Benutzer/Groups/Templates holen

            WatchedList<PASUser> userList = UserSrv.GetByTyp(itemType);


            // Liste sortieren

            userList.SortMemberName = "FullName";

            userList.Sorting = heidiGmbH.Plugging.SortOrder.Ascending;

            userList.Sort();


            foreach (PASUser user in userList)

            {

                // Angezeigt wird Nachname, Vorname. Falls diese nicht angegeben wurden wird der Windowsbenutzername oder, falls die

                // SID unbekannt ist, die SID selbst angezeigt.

                string nodeName = string.IsNullOrEmpty(user.FullName) ? ("(" + provider.Sid2Name(user.SID) + ")") : user.FullName;

                TreeNode node = new TreeNode(nodeName);

                node.Tag = user.Guid;

                node.ImageIndex = 4;

                node.SelectedImageIndex = 3;

                nodeRoot.Nodes.Add(node);

            }

        }
u hier einmal wie ich templates hinzufüge:
// Hier kann man neue Vorlagen anlegen


        private void toolStripButtonAddTemp_Click(object sender, EventArgs e)

        {

            AddNewTemplate();

        }


        private void AddNewTemplate()

        {

            Inboxes frm = new Inboxes();


            if (frm.ShowDialog() == DialogResult.OK)

            {

                  foreach (PASUser pu in CachedTemplates)

                {

                    if (pu.SID.Equals(frm.Value))

                    {

                        MessageBox.Show("Vorlagename bereits vergeben: " + frm.Value, "Vergleich", MessageBoxButtons.OK, MessageBoxIcon.Warning);


                        // Wird neu eingegeben

                        AddNewTemplate();

                    }

                }

                // Benutzer "ItemType" direkt anlegen;

                PASUser newTemplate = PASUser.GetInstanceWithNewGuid<PASUser>(); // wird eine neue GUID erstellt

                newTemplate.ItemType = ItemType.Template; // Aufzählung

                newTemplate.SID = frm.Value;     // wird angelegt

                newTemplate.Shortcut = frm.Value;


                //neues Template mit in die gecachten aufnehmen

                _cachedTemplates = null;

                UserSrv.Insert(newTemplate);

                fillUsertree();

                //treeViewTemplates.Nodes.Add(newTemplate.Guid, newTemplate.SID);


                WatchedList<UserRole> currentRoles = nodes2UserRoleList(newTemplate.Guid, lastClientGuid, newTemplate);

                //Gibt eine Liste der zur Zeit im Fassadentreeview angehakten Rechte zurück

                WatchedList<String> currentRolesList = new WatchedList<String>();
u hier wie die lösch-methode bereits aussieht:
private void toolStripButton1_Click_1(object sender, EventArgs e)

        {

            TemplateDelete();


        }


        //Hier kann mann erstellte Vorlagen aus DB einzeln löschen



        private void TemplateDelete()

        {

            DialogResult flgResult;

            flgResult = MessageBox.Show("Möchten Sie wirklich löschen", "Löschen der Vorlage", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);


            if (flgResult == DialogResult.OK)

            {  

               userTree.SelectedNode.Remove(); 

//-> wird zwar gelöscht, aber bei neustart wieder da



            }

        }

hoffentlich könnt ihr mir helfen

:new

Link zu diesem Kommentar
Auf anderen Seiten teilen

du hast eine menge irrelevanten code gepostet, gibst aber nirgendwo an, in welcher zeile du die datenbank abgreifst.

userTree.SelectedNode.Remove();

//-> wird zwar gelöscht, aber bei neustart wieder da

klar, dass die treenodes wieder da sind, wenn sie aus der DB wieder geholt werden, bzw. der tree refreshed wird.

verbinde dich zur DB und schmeiss den korrelierenden DS raus. welcher das ist, kannst nur du wissen, wenn du die tabellenstruktur nicht preisgibst.

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 Wochen später...

Hallo,

.remove löscht immer die komplette Zeile. Somit ist kein Abgleich mit der Datenbank mehr möglich. Benutze ".delete". Somit wird die Zeile als "gelöscht" markiert. Beim nächsten DB-Abgleich (update) wird die entsprechende Zeile dann in der DB gelöscht.

... viel Glück ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...