Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    CheckBoxList e SQL Delete

    Ciao,

    devo eseguire una query sql di questo tipo:

    " DELETE FROM tabella WHERE indice IN (....) "

    i valori dgli indici da eliminare (dentro ad IN() ) li sceglie l'utente dalla pagina web, tramite una checkboxlist; nel campo DataValueField di ogni item è contenuto l'indice della notizia a cui si riferisce.

    ecco come ottengo i vari indici:

    string values = "";

    foreach (ListItem item in cblDelete.Items)
    {
    if (item.Selected)
    {
    values += item.Value + ",";
    }
    }

    string[] vals = values.Split(',');
    Il mio problema è che non so come scrivere la query in modo che le uniche righe del db che verranno eliminate siano quelle corrispondenti ai miei indici.

    C'è qualcuno che sa dirmi come posso fare?
    what did you bring me to keep me from the gallows pole?

  2. #2
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    DELETE FROM tabella WHERE indice IN (1,2,3)

    cancella i record con indice 1,2,3

  3. #3
    Originariamente inviato da edaje
    DELETE FROM tabella WHERE indice IN (1,2,3)

    cancella i record con indice 1,2,3
    risposta del cazz.. non è quello per cui ha chiesto aiuto il ragazzo.

    codice:
    string values = "";
    
    foreach (ListItem item in cblDelete.Items)
    {
          if (item.Selected)
          {
             values += item.Value + ",";
          }
    }
    
    values + = "0";
    
    // string[] vals = values.Split(','); lo split non ti serve
    // a questo punto lanci la query concatenando in questo modo
    
    string query = "DELETE FROM tabella WHERE indice IN (" + query + ")";
    soluzione non proprio elegante.. ma sicuramente funzionante
    ps = pensa ai parameters invece della concatenazione..

    Ciao

  4. #4
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    La buona educazione non si usa dalle tue parti

  5. #5
    Dalle tue parti invece si leggono i post?
    Ciao Fenomeno!

  6. #6
    alla fine ho risolto in questo modo

    string values = "";

    foreach (ListItem item in cblDelete.Items)
    {
    if (item.Selected)
    {
    values += "'" + item.Value + "'" + ",";
    }
    }

    int lenght = values.Length;
    string vals = values.Remove(lenght - 1);
    poi la query è più o meno così:

    DELETE FROM Notizie WHERE indice IN (" + vals + ")
    alla query passo anche gli apici singoli, dato che la sintassi dell'operatore IN è ('val1', 'val2', ...)

    e comunque sì, invece di concatenare si potrebbero anche usare i parameters, ma il risultato è lo stesso.

    ciao
    what did you bring me to keep me from the gallows pole?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.