151 messaggi dal 09 aprile 2009
SqlConnection con = new SqlConnection();
con.ConnectionString = Agenzie_Immobiliari.manager.manager.Connessione;
string sql = "UPDATE utenti set nome=@nome WHERE id=1";
SqlCommand comm = new SqlCommand();
comm.Parameters.Add("@nome", SqlDbType.VarChar).Value = tbNome.Text;
if (con.State == ConnectionState.Closed)
con.Open();
comm.Connection = con;
comm.CommandText = sql;
comm.ExecuteNonQuery();
con.Close();

Non funziona con il parametro @nome, invece se scrivo direttamente il valore prende la modifica....


grazie

Saluti
The Seventh Seal
13 messaggi dal 30 settembre 2006
Ciao prova in questo modo

comm.Parameters.Add("@nome", SqlDbType.VarChar, ***dimesione del campo***);
comm.Parameters.["@nome"].Value = tbNome.Text;
151 messaggi dal 09 aprile 2009
Niente da fare, ho provato come hai detto ma il risultato è il medesimo...
Ma cos'è questa diavoleria?


ciao

Saluti
The Seventh Seal
432 messaggi dal 31 gennaio 2007
scusa ma il paremtro ID è un intero o una stringa?
perchè se intero SqlDbType.VarChar è sbagliato...

ciao
151 messaggi dal 09 aprile 2009
il parametro @nome è una stringa, e poi perchè se a @nome sostituisco ad esempio 'mario' funziona?

ciao

Saluti
The Seventh Seal
151 messaggi dal 09 aprile 2009
Ho individuato il problema anche se non l'ho capito, cero cdi spiegarmi:
In pratica passo un parametro ad una popup che in un form carica i dati anagrafici dell'utente selezionato:
quindi nel page_load della pagina ho:

id = Request.QueryString["id"];
if (id != null & id != "")
{
LoadUtente(Convert.ToInt32(id));
}
Il metodo LoadUtente è:

public void LoadUtente(int id)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = Agenzie_Immobiliari.manager.manager.Connessione;
string sql = "SELECT * FROM UTENTI where ID = @id";
SqlCommand comm = new SqlCommand(sql, con);
comm.Parameters.Add("@id", SqlDbType.Int, 32).Value = id;ecc...
Assegna alle varie textbox i campi della tabella utenti

Poi ho il metodo di update:
private void AggiornaUtente(string email)
{
con.ConnectionString = Agenzie_Immobiliari.manager.manager.Connessione;
string sql = "UPDATE dbo.utenti SET email=@email WHERE id=@id";
ecc...
}
Ed infine sul pulsante di update chiamo il metodo aggiornautente e ricarico il loadutente per visualizzare i dati aggiornati.

Ora commentando nel page_load() il metodo LoadUtente(Convert.ToInt32(id));
la query di update funziona... però come faccio a caricare i dati nel pageload()?

viao

Saluti
The Seventh Seal
151 messaggi dal 09 aprile 2009
Questo è il codice completo:
public partial class modutenti : System.Web.UI.Page
{
private string id
{
get
{
Object o = ViewState["id"];
if (o == null)
return string.Empty;
else
return o.ToString();
}
set
{
ViewState["id"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
id = Request.QueryString["id"];
if (id != null & id != "")
{
LoadUtente(Convert.ToInt32(id));
}

}


public void LoadUtente(int id)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = Agenzie_Immobiliari.manager.manager.Connessione;
string sql = "SELECT * FROM UTENTI where ID = @id";
SqlCommand comm = new SqlCommand(sql, con);
comm.Parameters.Add("@id", SqlDbType.Int, 32).Value = id;
if (con.State == ConnectionState.Closed)
con.Open();
SqlDataReader reader = comm.ExecuteReader(CommandBehavior.CloseConnection);
while (reader.Read())
{
tbNome.Text = reader["nome"].ToString();
tbCognome.Text = reader["cognome"].ToString();
tbCitta.Text = reader["citta"].ToString();
tbIndirizzo.Text = reader["indirizzo"].ToString();
tbTelefono.Text = reader["cellulare"].ToString();
tbNote.Text = reader["note"].ToString();
tbUsername.Text = reader["email"].ToString();
tbPassword.Text = reader["password"].ToString();
ddProfilo.SelectedIndex = ddProfilo.Items.IndexOf(ddProfilo.Items.FindByValue(reader["ruolo"].ToString()));
cbAbilitato.Checked = Convert.ToBoolean(reader["abilitato"]);

}
reader.Close();
}
private void AggiornaUtente()
{
SqlConnection con = new SqlConnection();
con.ConnectionString = Agenzie_Immobiliari.manager.manager.Connessione;
string sql = "UPDATE dbo.utenti SET email=@email WHERE id=@id";

SqlCommand comm = new SqlCommand(sql,con);
comm.Parameters.Add("@email", SqlDbType.VarChar, 50).Value = tbUsername.Text;
comm.Parameters.Add("@id", SqlDbType.Int).Value = Convert.ToInt32(id);
if (con.State == ConnectionState.Closed)
con.Open();
comm.ExecuteNonQuery();
con.Close();
// Response.Write(sql);

}
protected void btModifica_Click(object sender, EventArgs e)
{
AggiornaUtente();

}
}

Saluti
The Seventh Seal
151 messaggi dal 09 aprile 2009
Me tapino, ci ho perso una mattinata per un !IsPostBack nel page_load()....

ciao

Saluti
The Seventh Seal

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Ultimi messaggi
UTENTI ONLINE
    In primo piano

    I più letti di oggi

    Media
    In evidenza
    MISC