2010-03-11 5 views
6

Sto provando a sottoclasse il controllo di .NET 2.0 Gridview e implemento un aggiornamento personalizzato da eseguire quando si fa clic su "modifica"; tuttavia ottengo il seguente messaggio di errore criptico: "Si è verificato un errore imprevisto." Sto cercando di accedere ai nostri registri db per vedere se non ci sono, ma fino a quando non ottengo l'accesso, non riesco a risolvere il problema. Qui ci sono frammenti di mio codice:Implementazione di .NET Gridview con SqlDataSource - all'eccezione di modifica

Nel metodo WebPart CreateChildControls:

sqlDataSource.UpdateCommand = "dbo.UpdateInvoiceData"; 
sqlDataSource.UpdateCommandType = SqlDataSourceCommandType.StoredProcedure; 
sqlDataSource.UpdateParameters.Add(new Parameter("month", DbType.Int32, "2")); 
sqlDataSource.UpdateParameters.Add(new Parameter("year", DbType.Int32, "2010")); 
this.Controls.Add(sqlDataSource); 
EditGridView edv = new EditGridView(sqlDataSource); 
this.Controls.Add(edv); 

Nella WebControl EditGridView:

OnLoad:

this.AutoGenerateEditButton = true; 
this.AutoGenerateColumns = true; 
string[] keyNames = { "Name" }; 
this.DataKeyNames = keyNames; 
this.EnableViewState = true; 
this.DataSourceID = sqlDataSource.ID; 
this.DataBind(); 

protected override void OnRowUpdating(GridViewUpdateEventArgs e) 
{ 
    try 
    { 
     sqlDataSource.UpdateParameters.Add(new Parameter("ExtraParamName", DbType.Int32, e.NewValues["ExtraParamName"].ToString())); 
     sqlDataSource.UpdateParameters.Add(new Parameter("Name", DbType.String, e.NewValues["Name"].ToString())); 
     sqlDataSource.UpdateParameters.Add(new Parameter("spUser", DbType.String, "test")); 

    } 
    catch (Exception ex) 
    { 
     this.Page.Response.Write("Error occurred while updating the record. " + ex.Message); 
    } 
} 
+11

Nikkia, per capire quale sia l'errore, è possibile modificare il web.config in modo che invece della pagina "Un errore imprevisto" si ottenga una traccia dello stack. Vedi qui: http://blog.thekid.me.uk/archive/2007/02/15/a-solution-to-quot-an-unexpected-error-has-occurred-quot-in-wss-v3.aspx –

+0

Puoi descrivere l'intero problema in maggiori dettagli? –

risposta

1

Questa linea :

... ("ExtraParamName", DbType.Int32, e.NewValues ​​["ExtraParamName"]. ToString()));

Stai dicendo che il tipo è un int ma lo stai passando ad una stringa (nome). È giusto?