Tengo un problema: "An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll"

¿Cómo resuelvo este problema? Al principio me corría excelente el código y buscaba en la base de datos los datos que insertaba perfectamente pero ahora me manda este error:

"An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll" Al parecer es con el "execute reader" pero ni idea de que sucede realmente. Gracias de antemano.

 OleDbConnection dt = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source = Y:/Proyecto Primaria/Pro.Empresa/Pro.Empresa/escuela.accdb");
            sql = "SELECT * FROM PROFESOR WHERE ID='" + iDTextBox.Text + "'";
            OleDbCommand con = new OleDbCommand(sql, dt);
            dt.Open();
            OleDbDataReader leer = con.ExecuteReader();
            try
            {
                if (leer.Read() == true)
                {
                    button4.Visible = false;
                    iDTextBox.Visible = false;
                    label2.Visible = false;
                    button5.Visible = true;
                    pictureBox1.Visible = true;
                    MessageBox.Show("Bienvenido");
                }
                else
                {
                    MessageBox.Show("No existe el usuario, intente volver a esribir el ID o cree uno nuevo");
                }
            }
            catch
            {
                MessageBox.Show("No existe el usuario, intente volver a esribir el ID o cree uno nuevo");
            }

1 Respuesta

Respuesta
1

I. Hola Compañero, disculpa la duda, ¿trabajas bajo Visual C++?, cualquier detalle será de utilidad.

No conozco nada sobre este lenguaje pero he visto una posible solución sobre el error, a ver si hubier suerte.

https://support.microsoft.com/es-es/help/825738/-system-data-oledb-oledbexception-error-when-you-run-an-asp-net-web-ap 

https://www.youtube.com/watch?v=Z2sNDzADOHg

**Hay un curioso problema al intentar acceder a un Excel / Access en un servidor Web mediante OLEDB y ASP.NET. Es algo trivial, pero puede haceros perder mucho tiempo. El error se produce al llamar al método “Connection. Open” para abrir una connexion a un fichero Access o Excel con ASP.NET y OleDb. Hay dos posibles causas:

Primera causa: La cuenta ASP.NET/Impersonated no tiene suficientes permisos para crear el fichero ldb.

  • Solución: Dar a la cuenta del usuario ASP.NET permisos de escritura/lectura a la carpeta donde está el fichero Excel/Access. Si estas utilizando “impersonation”, tienes que dar a la cuenta “impersonated” los permisos mencionados, es decir, a todos los usuarios que se vayan a conectar (con seguridad Windows).

Segunda causa: La cuenta “Impersonated” no tiene suficientes privilegios para crear los ficheros temporales.
Cuando abres un fichero Excel o Access usando Jet, require la creación de ficheros temporales. Con ASP.NET estos ficheros temporales serán creados en el directorio:

“C:\Documents and Settings\<NombreServidor>\ASPNET\Local Settings\Temp”

Por defecto la cuenta del usuario ASP.NET tiene completo acceso a este directorio. Sin embargo, cuando estas usando “impersonation”, esta cuenta no tendrá acceso por defecto. En consecuencia, el proceso Jet no tendrá acceso a crear ficheros temporales cuando abre una conexión a un fichero Access o Excel con ASP.NET. Debido a esto, OleBd lanza una excepción sin un mensaje específico: “System. Data. OleDb. OleDbException: Error no especificado” o en inglés “System. Data. OleDb. OleDbException: Unspecified error”.

  • Solución: Dar permisos totales a la cuenta de “impersonated” a la carpeta mencionada. No está demás mirar el artículo de Microsoft donde encontraréis mas detalles.**

Pues no, no he trabajado con C++ así que no tengo idea de como son las sintaxis, yo solo he usado C#.

Y se me hace extraño que me mande el error ya que lo corría muy bien y lo probé en distintas PC con éxito, bueno intentare lo que me propones a ver que, Gracias.

I. Buenas, disculpa la confusión.

He segudo buscando creo que sin éxito, pero esta incidencia parece recurrente, por casualidad he visto a una persona que parece haberlo solucionado reemplazando una línea de código, quizás resulte.. (copio/pego), ojalá haya suerte.

Ok, I solved this issue. It began to work when I replaced ConnectionString with

var cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\Kadry2002.mdb";

https://stackoverflow.com/questions/41951163/an-unhandled-exception-of-type-system-data-oledb-oledbexception-occurred-in-sy 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas