2010-03-11 6 views
6

Ich versuche, das .NET 2.0 Gridview-Steuerelement zu unterklassifizieren und ein benutzerdefiniertes Update zu implementieren, wenn "Bearbeiten" angeklickt wird; Ich bekomme jedoch die folgende kryptische Fehlermeldung: "Ein unerwarteter Fehler ist aufgetreten." Ich versuche, auf unsere Db-Logs zuzugreifen, um zu sehen, ob es dort fehlschlägt, aber bis ich Zugriff bekomme, kann ich das Problem nicht debuggen. Hier sind Schnipsel meines Codes:Implementieren von .NET Gridview mit SqlDataSource - bei Bearbeitung Ausnahme

Im WebPart Create Methode:

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); 

Im EditGridView webcontrol:

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, um herauszufinden, was der Fehler ist, können Sie die web.config ändern, so dass anstelle der "Ein unerwarteter Fehler" -Seite erhalten Sie einen Stack-Trace. Siehe hier: http://blog.thekid.me.uk/archive/2007/02/15/a-solution-to-quot-an-unexpected-error-has-occurred-quot-in-wss-v3.aspx –

+0

Können Sie das gesamte Problem detaillierter beschreiben? –

Antwort

1

Diese Linie :

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

Sie sagen, der Typ ist ein int, aber Sie übergeben es eine Zeichenfolge (Name). Ist das richtig?