2016-11-02 2 views
1

Hallo, ich versuche, das folgende zu tun, aber es wirft den Fehler Titel. Wie kann ich reparieren? Danke !!!Kann nicht implizit konvertieren Typ Objekt zu system.data.datatable

public static object conectar(string query) 
{ 
    DataTable Tabla = new DataTable(); 
    SqlConnection connection = BaseDatos1.getConexion(); 
    SqlDataAdapter Da = new SqlDataAdapter(); 
    DataSet Ds = new DataSet(); 
    Da = new SqlDataAdapter(query, connection); 
    Da.FillSchema(Tabla, SchemaType.Source); 
    Da.FillLoadOption = LoadOption.PreserveChanges; 
    Da.Fill(Tabla); 
    BaseDatos1.closeConnection(); 
    return Tabla; 
} 

public static string Verificar() 
{ 
    bool functionReturnValue ; 
    DataTable Dt1; 
    DataTable Dt2; 
    DataTable Dt3; 
    int j; 
    int k; 
    int DigitoVerificador; 
    int Acum; 
    string A; 
    string tablas = ""; 
    string[] table = new string[6]; 
    string registro = ""; 
    bool errorEnTablaActual; 
    int reg = 0; 
    try { 
     functionReturnValue = true; 
     //Verifico en Base Seguridad 
     **Dt1 = conectar("select Tabla from DigitoVerificador");** 

Antwort

2

Sie erhalten den Fehler, da die conectar Methode ein Objekt zurückgibt, die Sie dann zu Dt1 zuweisen, die eine Datatable ist, und so erhalten Sie die Meldung, dass der Wert nicht implizit konvertiert werden ..

Sie können explizit den Rückgabewert in einer Datatable werfen, da die conectar Methode nie null zurück:

Dt1 = (DataTable)conectar("select Tabla from DigitoVerificador"); 

Alternativ und wahrscheinlich besser, würden Sie den Rückgabetyp vonändern 0 bis DataTable.

Verwandte Themen