Error en una aplicacion WinForms

08/09/2006 - 11:41 por Abel | Informe spam
Hola
Estoy desarrollando una aplicacion winforms en C# en VS 2005, donde trato de
leer un archivo situado en el disco c de la misma computadora, que es un
archivo excel usando OleDb
Pero al ejecutar, me da al intentar abrir la conexion en la instruccion
objConn.Open el siguiente error:
"Request for the permission of type 'System.Data.OleDb.OleDbPermission,
System.Data, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089' failed."
Y aparece el siguiente mensaje en la excepcion:
System.Exception {System.Security.SecurityException}
Mi codigo:
public System.Data.DataSet GetDataFromExcelFile(String File_name) {
try {
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;";
strConn += "Data Source= " + File_name + "; Extended Properties=Excel
8.0;HDR=Yes;IMEX=1";
OleDbConnection ObjConn = new OleDbConnection(strConn);
=> aca falla => ObjConn.Open();
OleDbCommand ObjCmd = new OleDbCommand("SELECT * FROM [ExcelFileTest$]",
ObjConn);
OleDbDataAdapter objDA = new OleDbDataAdapter();
objDA.SelectCommand = ObjCmd;
DataSet ObjDataSet = new DataSet();
objDA.Fill(ObjDataSet);
ObjConn.Close();
return ObjDataSet;
} catch(Exception excepcion) {
return null;
}
}
alguna idea como solucionar este error?
Gracias
Abel
 

Leer las respuestas

#1 Alberto Poblacion
08/09/2006 - 15:34 | Informe spam
"Abel" wrote in message
news:
[...]
"Request for the permission of type 'System.Data.OleDb.OleDbPermission,
System.Data, Version=2.0.0.0, Culture=neutral,
PublicKeyToken·7a5c561934e089' failed."
[...] > aca falla => ObjConn.Open();




Este error se produce cuando el ejecutable que estás corriendo
(tuprograma.exe) no tiene concedidos los permisos de utilización de OleDb en
la configuración del .Net Framework (que se puede modificar desde un icono
que hay en las herramientas administrativas del panel de control).

Si no has tocado nada de los permisos, ni tu equipo pertenece a un
Dominio de Windows donde el administrador haya tocado esos permisos,
entonces estarás usando los permisos predeterminados. Y los permisos
predeterminados conceden permisos ilimitados a los programas (.exe) que se
ejecuten desde el disco local de tu equipo, pero imponen muchas limitaciones
(entre otras, no permiten usar OleDb) a los ejecutables traídos desde una
unidad de red (\\equipo\directorio\programa.exe), incluso aunque \\equipo
sea tu propia máquina.

Para solucionar el problema, lo más sencillo es copiar el ejecutable a
tu disco C y ejecutarlo desde ahi. En caso contrario, puedes ir al panel de
control y condeder permisos al ejecutable que estás lanzando desde la unidad
de red.

Preguntas similares