2011-01-04 11 views
0

Ich bin neu mit dem Unterschall, und ich habe ein Problem, wenn Sie versuchen, die Datenbank vom SQL Server zu aktualisieren. Ich habe eine Gridview erstellt, indem ich die Aktualisierungsergebnisse nicht zurückgebe. kannst du mir bitte helfen? es bekommt einen Fehlercode auf dc.AddMostaHse(); (kann nicht implizit konvertieren Typ ‚void 'Objekt')Aktualisieren meiner Datenbank

Hier wird der Code von DataAccess.cs Seite

public void AddMostaHse() {

 Mosta.MostaHSE1 xx = new MostaHSE1(); 
     xx.ID = 94; 
     xx.FunctionLocation = "lza94"; 
     xx.acno = 12; 
     xx.Save(); 
    } 

es mit der Bindung getan Rasteransicht. {

 DataAccess dc = new DataAccess(); 
     gvtest.DataSource = dc.AddMostaHse(); 
     gvtest.DataBind(); 

    } 

Antwort

0

Das macht nicht viel Sinn machen. Ihre Gridview sollte an eine Leseoperation gebunden sein. Sie binden es momentan an einen Insert/Write-Vorgang, der auf Ihren Angaben basiert. Sie sollten wahrscheinlich eine Sammlung von MostaHSE1() greifen und diese in Ihrer Gridview anzeigen. Der Rückgabetyp Ihrer Lesefunktion sollte höchstwahrscheinlich DataTable oder DataSet sein.

Ihr AddMostHse1() erscheint, es sollte funktionieren, aber Sie möchten ein anderes Ereignis aus der Gridview ausrichten, um dies zu tun. Vielleicht RowEditEnding oder ein anderes Ereignis.

0

Ihre Methode AddMostaHse kehrt void (keine Rückkehr). Sie können ein Datagrid nicht an void binden. Wenn Sie das Datagrid an das Objekt binden möchten Sie nur in der Methode erstellt dann Ihre Methode ändern:

public MostaHSE1 AddMostaHse() { 

     Mosta.MostaHSE1 xx = new MostaHSE1(); 
     xx.ID = 94; 
     xx.FunctionLocation = "lza94"; 
     xx.acno = 12; 
     xx.Save(); 
     return xx; 
    } 

Es scheint mir seltsam, warum Sie ein Objekt in einem Datagrid binden (lassen allein, warum würden Sie binden ein erstelltes Objekt wie das zu einem Datagrid, ich nehme an, dass Sie nur testen), normalerweise binden Sie eine Sammlung von Objekten .. daher kann dies nicht das gewünschte Ergebnis bringen.

Ein häufiger Kandidat für Ihre Datenraster wäre so etwas wie:

public IEnumerable<MostaHSE1> GetAllMostaHse() { 

     return Mosta.MostaHSE1.All(); 

    } 
+0

danke für Ihre Hilfe. Du hast Recht über die Leere. Also was schlägst du vor? Was ist die beste Methode, um die Updates anzuzeigen? Sry, wenn Sie irgendwelche Unannehmlichkeiten verursachen, aber ich bin neu in diesem System. Vielen Dank für die Geduld! – Malcolm