none
Error: Unable to find the requested .Net Framework Data Provider RRS feed

  • Pregunta

  • Buenas noches, 

    Llevo bastante tiempo parada. He recuperado un viejo programa que funciona perfectamente en local, al subirlo al servidor no me da ningún problema hasta que trato de cargar una página que funciona con un gridview. En ese momento me salta el siguiente error: 

    Unable to find the requested .Net Framework Data Provider.  It may not be installed.

    Alguna idea para resolverlo????

    miércoles, 16 de septiembre de 2015 19:56

Respuestas

  • >>Pero es cierto que lo hago desde código, con peticiones de este tipo

    entonces porque el gridview no lo haces de la misma forma ?

    Nota: si solo vas a cargar uan pagina usa el Fill() con un datatable, no necesitas de un dataset

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 17 de septiembre de 2015 13:19

Todas las respuestas

  • hola

    de casualidad te conectas contra alguna db ?

    si es asi defines el proveedor en el connection string que defines en el web.config

    apunto a la parte que marco en negrita

    <connectionStrings>
       <add 
          name="LocalSqlServer" 
          connectionString="...." 
          providerName="System.Data.SqlClient"
       />
    </connectionStrings>

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 16 de septiembre de 2015 20:10
  • La defino directamente en el datasource de la siguiente forma: 

                <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                ConnectionString="Server=MYSQL5011.Smarterasp.net;Database=db_9d8ab7_tsdb;Uid=9d8ab7_tsdb;Pwd=xxxxxx" 
                ProviderName="System.Data.SqlClient" 
                SelectCommand="SELECT IdAlbaran, ImporteTotal, concat_ws(' ',Nombre,Apellidos) as Nombre, concat_ws('/',usuarios.Telefono1, usuarios.Telefono2) as Telefonos, Pagado, (SELECT Count(*) FROM paquetes WHERE paquetes.IdAlbaran=albaranes.IdAlbaran)  AS num from albaranes, usuarios where (albaranes.IdUser=usuarios.IdUser) ORDER By IdAlbaran desc"
                FilterExpression="IdAlbaran LIKE '%{0}%' and Nombre LIKE '%{1}%' and ImporteTotal LIKE '%{2}%'"> 

    Y ahora el error es 

    The system cannot find the file specified

    Quizá sea que no recuerdo bien el funcionamiento... pero no entiendo qué ocurre... 


    • Editado nihonpau miércoles, 16 de septiembre de 2015 20:34
    miércoles, 16 de septiembre de 2015 20:31
  • >>La defino directamente en el datasource

    mm la verdad no lo aconsejaria, deberias definir en el web.config

    se puede definir en el config y usar el el SqlDataSource

    >>Y ahora el error es

    pero si usas mysql porque defines el proveedor System.Data.SqlClient ? este se usa para sql server

    en tu caso deberias usar MySql.Data.MySqlClient

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 16 de septiembre de 2015 20:56
  • Comprendo que sería más correcto: 

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                ConnectionString="<%$ ConnectionStrings:db_9d8ab7_tsdbConnectionString %>" 
                ProviderName="<%$ ConnectionStrings:db_9d8ab7_tsdbConnectionString.ProviderName %>" 
                SelectCommand="SELECT IdAlbaran, ImporteTotal, concat_ws(' ',Nombre,Apellidos) as Nombre, concat_ws('/',usuarios.Telefono1, usuarios.Telefono2) as Telefonos, Pagado, (SELECT Count(*) FROM paquetes WHERE paquetes.IdAlbaran=albaranes.IdAlbaran)  AS num from albaranes, usuarios where (albaranes.IdUser=usuarios.IdUser) ORDER By IdAlbaran desc"
                FilterExpression="IdAlbaran LIKE '%{0}%' and Nombre LIKE '%{1}%' and ImporteTotal LIKE '%{2}%'">     

    teniendo en el web.config: 

        <add name="db_9d8ab7_tsdbConnectionString" connectionString="Server=MYSQL5011.Smarterasp.net;Database=db_9d8ab7_tsdb;Uid=9d8ab7_tsdb;Pwd=xxxxx"
          providerName="MySql.Data.MySqlClient" />

    Pero el error sigue apareciendo... 

    The system cannot find the file specified

    Me pregunto, ¿cabe la opción de que tenga que subir algún archivo/librería concreta a alguna carpeta en especial?  Recuerdo haberlo hecho una vez, pero no sé para qué... 

    No sé qué puedo hacer, y mucho menos por qué funciona en local pero no en el servidor... cuando todo lo demás lo hace


    • Editado nihonpau miércoles, 16 de septiembre de 2015 21:37
    miércoles, 16 de septiembre de 2015 21:35
  • hola

    >>¿cabe la opción de que tenga que subir algún archivo/librería concreta a alguna carpeta en especial?

    mm no creo

    si creas un archivo .udl (basicamntee s un archivo de texto .txt que lo renombras a .udl) y usas el wizard para definir los datos de conexion

    al usar el boton de test puedeo conectarte a mysql

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 16 de septiembre de 2015 23:52
  • No entiendo... ¿para qué hacer el udl? 

    He estado testeando el programa y funciona perfectamente en todos los casos desde local y en el servidor en todos los que NO tienen gridview... pero soy incapaz de resolverlo... 

    jueves, 17 de septiembre de 2015 11:18
  • hola

    >>No entiendo... ¿para qué hacer el udl?

    para validar que puedes conectarte

    >>en el servidor en todos los que NO tienen gridview

    pero los que no tienen gridview se conectan a la db ?

    si es asi tambien lo hacen mediante SqlDataSource o quizas usas ado.net desde codigo ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 17 de septiembre de 2015 12:34
  • Sí, se conectan constantemente, en el fondo el programa se limita a mostrar y editar datos de la base de datos. Pero es cierto que lo hago desde código, con peticiones de este tipo: 


    mycon = new MySqlConnection(connStr); 
    mycon.Open();                
    query = new MySqlCommand();                
    query.CommandType = CommandType.Text;                
    query.CommandText = "Select IDUser, Pass, Nombre, Apellidos, Email, Estado, IdViaje, DATE_FORMAT(viajes.Fecha_viaje,'%d/%m/%Y') as Fecha_viaje, Tipousuario from usuarios, viajes where (IDUser='"+userName+"' and IdViaje=(Select IdViaje from viajes Where Actual=1))";                
    
    query.Connection = mycon;                
    dato = new DataSet();                
    MySqlDataAdapter adaptador = new MySqlDataAdapter(query);    adaptador.Fill(dato,"db_9d8ab7_tsdb");                  
    mycon.Close();


    jueves, 17 de septiembre de 2015 12:58
  • >>Pero es cierto que lo hago desde código, con peticiones de este tipo

    entonces porque el gridview no lo haces de la misma forma ?

    Nota: si solo vas a cargar uan pagina usa el Fill() con un datatable, no necesitas de un dataset

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 17 de septiembre de 2015 13:19
  • Lo intentaré... gracias.

    jueves, 17 de septiembre de 2015 14:29