Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

DS aus DB löschen in c#

Empfohlene Antworten

Veröffentlicht

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

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

  • 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 ...

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.