2017-02-26 2 views
-1

Ich habe diesen Code:Passing einen Objektnamen als Parameter in Methode

public void llenarDGVChoferes (string _comando) 
{ 
    //ComandoSQL para el dgvChoferes 
    var comando = _comando; 
    var datosConexion = new SqlConnection(stringconection); // Your Connection String here 
    //ComandoSQL para el dgvClientes 
    var dataAdapter = new SqlDataAdapter(comando, datosConexion); 
    var commandBuilder = new SqlCommandBuilder(dataAdapter); 
    var ds = new DataSet(); 
    dataAdapter.Fill(ds); 
    dgvChoferes.ReadOnly = true; 
    dgvChoferes.DataSource = ds.Tables[0]; 
    dgvChoferes.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; 
} 

dem Sie die SQL-Abfrage in te _comando Parameter übergeben und das Datagridview füllen mit der Abfrage Ergebnis genannt dgvChoferes. Diese Methode funktioniert gut, aber ich würde gerne wissen, ob es eine Möglichkeit gibt, den Namen der DataGridView im Parameter der Methode zu übergeben. So etwas (Pseudo-Code)

public void llenarDGVChoferes (string _comando, dgvName) //dgvName = DataGridView's name 
{ 
    //ComandoSQL para el dgvChoferes 
    var comando = _comando; 
    var datosConexion = new SqlConnection(stringconnection); // Your Connection String here 
    //ComandoSQL para el dgvClientes 
    var dataAdapter = new SqlDataAdapter(comando, datosConexion); 
    var commandBuilder = new SqlCommandBuilder(dataAdapter); 
    var ds = new DataSet(); 
    dataAdapter.Fill(ds); 
    dgvName.ReadOnly = true; 
    dgvName.DataSource = ds.Tables[0]; 
    dgvName.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; 
} 

So werde ich in der Lage sein, alle DataGridView mit dieser Methode zu füllen.

+0

durch einen Parameter 'Datagridview dataGridView' Hinzufügen und vorausgesetzt, an der Aufrufstelle. – CodeCaster

+0

@CodeCaster Das funktioniert! Vielen Dank! – Natarr

+1

Das markierte Duplikat enthält eine Erläuterung zur Funktionsweise der Parameterübergabe, einschließlich der Möglichkeit, einen Referenztyp wie 'DataGridView' by-value zu übergeben und seine Eigenschaften weiterhin so zu ändern, wie Sie es hier tun möchten (dh Sie übergeben das Objekt wie jedes andere) anderer Wert). Siehe auch http://www.yoda.arachsys.com/csharp/parameters.html für weitere Diskussionen (wie im Kommentar im markierten Duplikat vorgeschlagen) und andere verwandte Fragen und Antworten wie https://stackoverflow.com/questions/1750070/ datagridview-pass-by-value-or-reference und https://stackoverflow.com/questions/18787530/passing-reference-type-in-c-sharp –

Antwort

0

Ja, einfach durch die Angabe:

public void llenarDGVChoferes(string _comando, DataGridView dgvName)

+0

Hm ... Ich denke, dass dgvName nicht String-Typ sein sollte !, Ich versuchte dies, aber dgvName als "DataGridView" -Datentyp – Natarr

+0

Yeah, bearbeitet. Siehe oben. –

+0

Danke! Das habe ich nicht gesehen, entschuldige – Natarr