2017-03-11 5 views
3

anhängen Ich muss Abfrage-Ergebnis an eine datatable jedes Mal, wenn die Methode mit anderen Parametern aufgerufen wird. Aber jetzt überschreibt es jedes Mal den Inhalt von datatable anstatt anzuhängen.Wie Abfrage-Ergebnis an eine Datentabelle C#

Ist es möglich, anhängen? Bitte helfen Sie mir ...

Protected void chkrow_CheckedChanged(object sender, EventArgs e) 
{ 
    DataTable dtble = new DataTable(); 
    CheckBox chkrow = (CheckBox)sender; 
    gridViewRow gvrow = chkrow.Parent.Parent; 
    GridView gvemp = (GridView) grdemp.Rows[gvrow.RowIndex].Cells[2].FindControl("gvemp"); 
    string emp = grdemp.DataKeys[gvrow.RowIndex].Values[2].ToString(); 
    if(gvemp.Checked == true) 
    { 
     string sqls = "select * from emptable where empid= ' " + emp.ToString() + "' " ; 
     OracleCommand cmd = new OracleCommand(sqls, cn) ; 
     OracleDataAdapter da = new OracleDataAdapter(cmd) ; 
     da.Fill(dtble); 
     //here I need to append result to dtble rather than overwriting when each checkbox is checked 
    } 

} 
+0

Veröffentlichen Sie Ihren erforderlichen Code – Sajeetharan

+0

Verwenden Sie eine temporäre Tabelle? –

+0

Ja. Ich verwende eine temporäre Datentabelle. –

Antwort

1

Definieren Sie die Variable dtble außerhalb Ihrer Funktion, um es global zugänglich zu machen, füllen Sie es auf Seite laden, laden Sie Ihre Rasteransicht und dann -

Protected void chkrow_CheckedChanged(object sender,  EventArgs e) 
{ 
DataTable dtble_inner=new DataTable() ; 
CheckBox chkrow=(CheckBox)sender; 
gridViewRow gvrow=chkrow.Parent.Parent; 
GridView gvemp=(GridView) grdemp.     Rows[gvrow.RowIndex].Cells[2].FindControl("gvemp"); 
string emp=grdemp. DataKeys[gvrow.RowIndex].Values[2].ToString(); 
if(gvemp.Checked==true) 
{ 
    string sqls="select * from emptable where empid= ' " + emp. ToString() +"' " ; 
    OracleCommand cmd=new OracleCommand(sqls, cn) ; 
    OracleDataAdapter da=new OracleDataAdapter(cmd) ; 
    da. Fill(dtble_inner); 
    if(dtble_inner.tables.count > 0 && dtble_inner.tables.rows.count >0) 
    { 
     //something like below 
     dtble.rows.add(dtble_inner.tables.rows(0)); 

    } 
    // rebind your gridview here with dtble 

} 

}

+0

Vielen Dank, mein Herr. Ich werde es versuchen –

Verwandte Themen