不能将类型对象转换为system.data.datatable

时间:2016-11-02 14:45:06

标签: c# type-conversion

您好我正在尝试执行以下操作,但它会抛出错误标题。我可以修理吗? 感谢!!!

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

1 个答案:

答案 0 :(得分:2)

您收到错误是因为conectar方法返回一个对象,然后您将该对象分配给Dt1,这是一个DataTable,因此您会收到无法隐式转换该值的消息。

您可以显式地将返回值强制转换为DataTable,因为conectar方法永远不会返回null:

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

或者,也许更好,您可以将conectar的返回类型更改为DataTable