Topic: Pubblico - Composto da 8 Posts di 3 Utenti.
| 11 Settembre, 2010 14:53 | #1 | ||
|---|---|---|---|
|
Salve, io ho questo codice in asp net 2.0 e csharp, ma a voi dico solo di Non mi riesce ad cancellare l'utente appena sostituito. Vi posto il codice: 1protected void btnUp_Click(object sender, EventArgs e) 2 { 3 using (MySqlConnection conn = new MySqlConnection(connectionString)) 4 { 5 6 7 8 string NEWS_SQL = "UPDATE news set _User=@S_USERNAME WHERE _User=@S_USERNAME_ID"; 9 conn.Open(); 10 MySqlCommand news_cmd = new MySqlCommand(NEWS_SQL, conn); 11 news_cmd.Parameters.AddWithValue("@S_USERNAME", DDautore.SelectedItem.Text); 12 news_cmd.Parameters.AddWithValue("@S_USERNAME_ID", Request.QueryString["user"]); 13 news_cmd.ExecuteNonQuery(); 14 conn.Close(); 15 16 string PAGINE_SQL = "UPDATE pagine set _User=@S_USERNAME WHERE _User=@S_USERNAME_ID"; 17 conn.Open(); 18 MySqlCommand pagine_cmd = new MySqlCommand(PAGINE_SQL, conn); 19 pagine_cmd.Parameters.AddWithValue("@S_USERNAME", DDautore.SelectedItem.Text); 20 pagine_cmd.Parameters.AddWithValue("@S_USERNAME_ID", Request.QueryString["user"]); 21 pagine_cmd.ExecuteNonQuery(); 22 conn.Close(); 23 24 25 string EVENTI_SQL = "UPDATE eventi set _User=@S_USERNAME WHERE _User=@S_USERNAME_ID"; 26 conn.Open(); 27 MySqlCommand eventi_cmd = new MySqlCommand(EVENTI_SQL, conn); 28 eventi_cmd.Parameters.AddWithValue("@S_USERNAME", DDautore.SelectedItem.Text); 29 eventi_cmd.Parameters.AddWithValue("@S_USERNAME_ID", Request.QueryString["user"]); 30 eventi_cmd.ExecuteNonQuery(); 31 conn.Close(); 32 33 string PHOTO_SQL = "UPDATE photo set _User=@S_USERNAME WHERE _User=@S_USERNAME_ID"; 34 conn.Open(); 35 MySqlCommand photo_cmd = new MySqlCommand(PHOTO_SQL, conn); 36 photo_cmd.Parameters.AddWithValue("@S_USERNAME", DDautore.SelectedItem.Text); 37 photo_cmd.Parameters.AddWithValue("@S_USERNAME_ID", Request.QueryString["user"]); 38 photo_cmd.ExecuteNonQuery(); 39 conn.Close(); 40 41 string _SQL = "UPDATE users set Username=@S_USERNAME WHERE Username=@S_USERNAME_ID"; 42 conn.Open(); 43 MySqlCommand _cmd = new MySqlCommand(_SQL, conn); 44 _cmd.Parameters.AddWithValue("@S_USERNAME",DDautore.SelectedItem.Text); 45 _cmd.Parameters.AddWithValue("@S_USERNAME_ID", Request.QueryString["user"]); 46 _cmd.ExecuteNonQuery(); 47 conn.Close(); 48 49 conn.Open(); 50 string SQL = "DELETE FROM users WHERE Username=@D_USERNAME"; 51 MySqlCommand cmd = new MySqlCommand(SQL, conn); 52 cmd.Parameters.AddWithValue("@D_USERNAME", "" + Request.QueryString["user"] + ""); 53 cmd.ExecuteNonQuery(); 54 conn.Close(); 55 56 Response.Redirect("../apri_utente.aspx?user=" + DDautore.SelectedItem.Text + ""); 57 58 } 59 60 } Mi dite perchè non mi fa cancellare l'utente vecchio o meglio, ditemi come funziona la sostituzione dei nomi utenti. |
|||
| 11 Settembre, 2010 15:00 | #2 | ||
|---|---|---|---|
|
Bentornato gigi, Il punto è, la sintassi di una query di UPDATE è 1UPDATE TABELLA SET CAMPO=VALORE WHERE CONDIZIONE Nel caso tuo 1UPDATE users set Username=@S_USERNAME WHERE Username=@S_USERNAME_ID devi quindi essere sicuo che il valore nelle variabili @S_USERNAME E @S_USERNAME_ID sia rispettivamente il valore nuovo che vuoi attribuire e poi i valore che devi cercare. Non conosco ASP quindi ... ti posso aiutare sulle query ma non sul codice, proviamoci, altrimenti contattiamo qualche baldo utente del forum esperto di codice Microsoft, ce ne sono almeno un paio Saluti algweb Un tempo ero algweb ora sono g2d |
|||
| 11 Settembre, 2010 15:10 | #3 | ||
|---|---|---|---|
|
si la query è giusta , queste "@_NOMEVALORE" è una cosa che fa asp net , per non inserire testi non indesiderati come SQL INJECTION etc, L'unico che prendo il valore "gigi" da una input=text, e lo vorrei sostituire da un menu a tendina popolato con altri nomi. Solo che funziona la sostituzione ma non capisco come mai non mi cancella l'utente vecchio. Mi date idee come fare la sostituzione degli utenti? grazie mille. |
|||
| 11 Settembre, 2010 15:23 | #4 | ||
|---|---|---|---|
|
Grazie per le dritte su ASP Ah ho capito adesso, meglio cosa vuoi fare.... In effetti se ho capito bene tu vuoi capire quali sono i passi operativi da compiere per effettuare correttamente la sostituzione, poi in effetti per il codice da scrivere ci pensi tu. Devi ragionare un attimo sull'applicazione, nel senso che se esistono altri punti in cui l'utente ha operato, allora il suo ID è sparso in varie tabelle, non è conveniente cancellarlo, altrimenti dovresti propagare la modifica in giro per il DB. Per sostituire ovviamente devi effettuare la UPDATE di cui parlavamo nello scorso post, e solo quella.. Sei sicuro che l'utente vecchio viene ancora visualizzato ? ... se stai usando una selectbox peer l'utente vecchio, potrebbe essere un problema di cache del browser, perchè non dai uno sguardo direttamente alla tabella sul DB Facci sapere Un tempo ero algweb ora sono g2d |
|||
| 11 Settembre, 2010 15:37 | #5 | ||
|---|---|---|---|
|
Grazie per la spiegazione, ora mi informo come prendere l'id ansi il nome utente e poi vi faccio sapere. |
|||
| 11 Settembre, 2010 18:33 | #6 | ||
|---|---|---|---|
|
ciao, ho risolto con un cookie, prendento l'id dell'utente e modificandolo invece con il nome ma con l'id è ha funzionato subito. Grazie mille. |
|||
| 22 Ottobre, 2010 15:21 | #7 | ||
|---|---|---|---|
|
Apri la connessione solo all'inizio e toglila solo alla fine! |
|||
| 22 Ottobre, 2010 15:21 | #8 | ||
|---|---|---|---|
|
Apri la connessione solo all'inizio e chiudila solo alla fine! |
|||
Condividi su:
Loggati o Registrati per replicare