none
Alguna idea con este error? RRS feed

  • Pregunta

  • Tengo creado un servicio el cual ejecuta el siguiente codigo:

     string ruta= Server.MapPath("BDatos");
                string cadena = "provider=Microsoft.Jet.OLEDB.4.0; Data Source ="+ruta+"; Extended Properties=dBase IV; User ID=; Password=";
                OleDbConnection con = new OleDbConnection();
                con.ConnectionString = cadena;
                con.Open();
                string consulta = "Select Cve_Prod as idProduct, Desc_Prod as nameProduct, Prec_Prod as price1, Prec_Prod2 as price2, Prec_Prod3 as price3, Prec_Prod4 as price4, Uni_Med as unit, CSE_PROD as category, '2' as existence, '06/06/2014' as timestampp from producto";
                OleDbDataAdapter adapter = new OleDbDataAdapter(consulta, con);
                DataTable datos = new DataTable();
                adapter.Fill(datos);
                con.Close();           
                
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
                Dictionary<string, object> row;
                if (datos.Rows.Count != 0)
                {
                    foreach (DataRow dr in datos.Rows)
                    {
                        row = new Dictionary<string, object>();
                        foreach (DataColumn col in datos.Columns)
                        {
                            row.Add(col.ColumnName, dr[col]);
                        }
                        rows.Add(row);
                    }
                    var Json = serializer.Serialize(rows);
                    Context.Response.Write(Json);
                }
                else
                    Context.Response.Write(serializer.Serialize("null"));

    De manera local funciona sin problemas, pero cuando lo subo al servidor me manda este error:

    System.Data.OleDb.OleDbException: External table is not in the expected format. at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) at ServiceApp.AppDataService.GetJsonProductos()

    Alguna idea o posible solución, muchas gracias

    viernes, 26 de septiembre de 2014 5:18

Respuestas

  • El problema puede venir por la configuración del proveedor de acceso a la BBDD que requira alguna configuración extra en el servidor, o bien, porque la instrucción

    Server.MapPath("BDatos");

    haga referencia a una ruta que no existe en el servidor.


    Si se solucionó tu consulta, no olvides marcarla como respondida. Si te ayudó, vótala como útil.

    viernes, 26 de septiembre de 2014 7:15

Todas las respuestas