Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-09-2007, 09:59   #1
Pro7on
Senior Member
 
L'Avatar di Pro7on
 
Iscritto dal: Jun 2005
Città: CH
Messaggi: 1058
[c#] .NET GridView help

ciao a tutti, io ho riempito un GridView con una query select. Solo che volevo metterci come prima colonna un button delete, e fare in modo che se viene premuto mi elimini la riga... come posso fare?
__________________
My_Site|| My Work CPU || MY I MOD
Pro7on è offline   Rispondi citando il messaggio o parte di esso
Old 25-09-2007, 12:35   #2
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da Pro7on Guarda i messaggi
ciao a tutti, io ho riempito un GridView con una query select. Solo che volevo metterci come prima colonna un button delete, e fare in modo che se viene premuto mi elimini la riga... come posso fare?
La tua griglia è predisegnata oppure viene disegnata a run time in base ai record che recuperi?

In questo secondo caso non ti conviene utilizzare un bottone come prima colonna, altrimenti se recuperi 100 record avrai 100 bottoni da gestire

Per creare comandi che si interfacciano comodamente con la griglia, piazza sul tuo form un binding navigator. Già di base porta un set di command button (ma che puoi sempre eliminare e aggiungere i tuoi) e poi gestire la "delete" nel modo seguente:

Codice:
private void Button_Click(object Sender, EventArgs e)
{
    try
    {
       string cancella = "DELETE FROM tua tabella WHERE campoTabella = '" + tuaGriglia.Rows[numero_riga].Cells[numero_cella].Value + "';

       SqlCommand delete = new SqlCommand(cancella, tua_connessione);
       delete.ExecuteNonQuery();
    //codice per la gestione della chiusura della connessione
    }
    catch(SqlException ex) {//gestisci l'eccezione}
}
Altrimenti, se la griglia ha una sola riga (nel qual caso non ti serve una griglia )

Codice:
DataGridViewButtonColumn myButton = new DataGriViewButtonColumn();
myButton.Name = "Cancella";
tuaGriglia.Columns.Add(myButton);
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 25-09-2007, 13:53   #3
Pro7on
Senior Member
 
L'Avatar di Pro7on
 
Iscritto dal: Jun 2005
Città: CH
Messaggi: 1058
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
La tua griglia è predisegnata oppure viene disegnata a run time in base ai record che recuperi?

In questo secondo caso non ti conviene utilizzare un bottone come prima

Codice:
DataGridViewButtonColumn myButton = new DataGriViewButtonColumn();
myButton.Name = "Cancella";
tuaGriglia.Columns.Add(myButton);


nn ho capito molto bene un acosa:

1: consigli di mettere bottoni o link nella prima colonna?
2: quando chiede numeroColonna e numeroCella come si fanno a sapere e cosa sarebbe numero cella?

Thx
__________________
My_Site|| My Work CPU || MY I MOD
Pro7on è offline   Rispondi citando il messaggio o parte di esso
Old 25-09-2007, 14:53   #4
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da Pro7on Guarda i messaggi
nn ho capito molto bene un acosa:

1: consigli di mettere bottoni o link nella prima colonna?
Beh, sono 2 cose diverse. Ad esempio:

Partendo dal presupposto che un evento da associare ad un bottone è molto diverso da un evento da associare al click su un link:

Se la tabella dalla quale recuperi i record, è predisposta a contenerne molti, non ti conviene mettere dei bottoni all'interno della griglia, per il motivo che ti ho già esposto (almeno io non li metterei).

Avere una colonna in forma di "link", mi può essere utile se il campo che recupero è un sito web oppure un indirizzo di email.

Quote:
2: quando chiede numeroColonna e numeroCella come si fanno a sapere e cosa sarebbe numero cella?
Non indicavo numero colonna, ma numero riga

Puoi ottenerle in diversi modi, per esempio attraverso la proprietà "Index" del DataGridView oppure mediante la proprietà RowCount.

Per poter cancellare qualcosa con precisione ovviamente nel comando sql devi essere tu a dare le condizioni necessarie e sapere in quale "cella" della griglia si trova il dato che devi confrontare. Ad esempio, se tu hai una tabella del db composta da due campi:

ID e Cognome

In ID ho dei valori: 1 - 2 - 5
e in Cognome ho: Pippo, Paperino, Pluto

se recupero i dati su una griglia, avrò una griglia composta da due colonne:

Colonna "ID" e Colonna "Cognome"

E avrò verosimilmente 3 righe con due celle:

riga0 -> CellaNumero0(contiene:1), CellaNumero1(contiene:Pippo)
riga1 -> CellaNumero0(contiene:2), CellaNumero1(contiene:Paperino)
riga2 -> CellaNumero0(contiene:5), CellaNumero1(contiene:Pluto)

Quindi, come vedi, l'unica cosa che varia è il numero della riga, nel senso che in cella_numero_0 e in cella_numero_1, avrai sempre l'ID ed il Cognome a prescindere dal numero di riga, quindi, la tua query potrebbe somigliare a questa:

Codice:
/*questa ti cancella il dato dal db dove 
il nomeCampo della tabella è uguale 
al valore contenuto nella cella numero zero 
della riga corrente sulla griglia*/
string sql = "DELETE FROM tuaTabella WHERE nomeCampo = '" + tuaGriglia.CurrentRow.Cells[0].Value + "'; 

//oppure

/*qui scorre tutte le righe ed eliminerà tutti i record 
dal db nei quali il valore contenuto nella cella numero zero, 
per ciascuna riga, è uguale a quello del campo della tabella*/


for(int i = 0; i < tuaGriglia.RowCount; i++)

sql = "DELETE from tuaTabella WHERE nomeCampo = '" + tuaGriglia.Rows[i].Cells[0].Value;
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek

Ultima modifica di RaouL_BennetH : 25-09-2007 alle 14:56.
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 25-09-2007, 15:44   #5
Pro7on
Senior Member
 
L'Avatar di Pro7on
 
Iscritto dal: Jun 2005
Città: CH
Messaggi: 1058
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Beh, sono 2 cose diverse. Ad esempio:

Partendo dal presupposto che un evento da associare ad un bottone è molto diverso da un evento da associare al click su un link:

Se la tabella dalla quale recuperi i record, è predisposta a contenerne molti, non ti conviene mettere dei bottoni all'interno della griglia, per il m.............


for(int i = 0; i < tuaGriglia.RowCount; i++)

sql = "DELETE from tuaTabella WHERE nomeCampo = '" + tuaGriglia.Rows[i].Cells[0].Value;
[/code]

per contenere ne deve tenere molte di righe.
__________________
My_Site|| My Work CPU || MY I MOD
Pro7on è offline   Rispondi citando il messaggio o parte di esso
Old 25-09-2007, 17:29   #6
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da Pro7on Guarda i messaggi
per contenere ne deve tenere molte di righe.
Ok, ma il numero di righe altro non sarà che il numero dei record che prenderà dalla tua tabella. A meno di non prefissare tu il numero di righe, ma che poi ti darà rogne infinite se leghi la griglia ad una sorgente dati.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2007, 08:09   #7
Pro7on
Senior Member
 
L'Avatar di Pro7on
 
Iscritto dal: Jun 2005
Città: CH
Messaggi: 1058
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Ok, ma il numero di righe altro non sarà che il numero dei record che prenderà dalla tua tabella. A meno di non prefissare tu il numero di righe, ma che poi ti darà rogne infinite se leghi la griglia ad una sorgente dati.
e infatti io prendo i dati da un db, ma nn dichiaro il num di righe
__________________
My_Site|| My Work CPU || MY I MOD
Pro7on è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2007, 08:55   #8
Pro7on
Senior Member
 
L'Avatar di Pro7on
 
Iscritto dal: Jun 2005
Città: CH
Messaggi: 1058
leggendo questa pagina:

http://msdn2.microsoft.com/it-it/lib...nd(VS.80).aspx

ho provato a farlo ma mi da sempre questo errore quando premo il btn...

che errore e?

Codice:
Server Error in '/pro???Application.
--------------------------------------------------------------------------------

The GridView 'GridView1' fired event RowEditing which wasn't handled. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Web.HttpException: The GridView 'GridView1' fired event RowEditing which wasn't handled.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 


[HttpException (0x80004005): The GridView 'GridView1' fired event RowEditing which wasn't handled.]
   System.Web.UI.WebControls.GridView.OnRowEditing(GridViewEditEventArgs e) +324
   System.Web.UI.WebControls.GridView.HandleEdit(Int32 rowIndex) +60
   System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +705
   System.Web.UI.WebControls.GridView.RaisePostBackEvent(String eventArgument) +213
   System.Web.UI.WebControls.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +31
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +32
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +242
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3839
__________________
My_Site|| My Work CPU || MY I MOD
Pro7on è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2007, 12:27   #9
Pro7on
Senior Member
 
L'Avatar di Pro7on
 
Iscritto dal: Jun 2005
Città: CH
Messaggi: 1058
risolto thx
__________________
My_Site|| My Work CPU || MY I MOD
Pro7on è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
4 TV da 55" in sconto: da 299€ a 99...
Altro che crisi: la PlayStation 6 potreb...
Per iniziare e non solo: DJI Neo a 149€,...
Il nuovo MacBook entry level potrebbe es...
PlayStation annuncia lo State of Play di...
Funzionalità top a un prezzo acce...
Lo strumento per gli aggiornamenti autom...
Imperdibile sconto sul roborock Saros Z7...
Google Pixel 10, altri 100€ di sconto su...
Chip sotto i 2 nanometri, l'Europa alza ...
La smart meno smart di tutte: #6 in azio...
Red Hat Enterprise Linux sbarca su AWS E...
Addio alle migliaia di cicli e anni di t...
Colpo di STMicroelectronics, un'intesa d...
La Ferrari elettrica si chiama Luce: ecc...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:35.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v