Abrir archivos con Oledb

09/01/2009 - 14:17 por Enrique | Informe spam
hola,

Tengo un pequeño problema, lo que hago es conectarme a un archivo
excel mediante Oledb, si esa mini aplicacion que solo se conecta al
archivo y muestra una serie de datos, lo ejecuto mas de 20 veces me da
un error de que no se puede abrir el fichero! he cerrado la conexion
he hecho disposed y nada... se os ocurre algo?

Da igual hacerlo con un dataadapter un el command lo pongo en el
ejemplo.

resumen

Aplicacion que conecta a un proyect mediante oledb la instancion mas
de 20 veces da error


connectionString ="Provider=Microsoft.Project.OLEDB.11.0;Project
Name=NombreArchivo";

OleDbConnection conn = new OleDbConnection(connectionString);
OleDbCommand cmdSelect = new OleDbCommand("select",
conn);
OleDbDataAdapter data = new OleDbDataAdapter
(cmdSelect);
conn.Open();
cmdSelect.ExecuteNonQuery();
conn.Close();
 

Leer las respuestas

#1 SoftJaén
09/01/2009 - 14:52 | Informe spam
"Enrique" escribió:

Tengo un pequeño problema, lo que hago es conectarme a un archivo
excel mediante Oledb, si esa mini aplicacion que solo se conecta al
archivo y muestra una serie de datos, lo ejecuto mas de 20 veces me da
un error de que no se puede abrir el fichero! he cerrado la conexion
he hecho disposed y nada... se os ocurre algo?

Da igual hacerlo con un dataadapter un el command lo pongo en el



Hola, tocayo:

Nunca he utilizado el proveedor OleDb de Microsoft Project para conectarme
con un libro de trabajo de Excel, ya que siempre he utilizado el ISAM de
Excel que nos proporciona el motor de datos Microsoft Jet, por tanto,
desconozco por completo lo que te puede estar ocurriendo.

Si deseas utilizar el motor Jet, aquí tienes un ejemplo que muestra en un
control DataGridView los datos existentes en una supuesta Hoja1 de un libro
de Excel:

using System.Data.OleDb;

string connectionString "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=C:\\Mis documentos\\Libro1.xls;" +
"Extended Properties='Excel 8.0;HDR=Yes'";

using (OleDbConnection conn = new OleDbConnection(connectionString))
{
string sql = "select * from [Hoja1$]";
try
{
OleDbDataAdapter data = new OleDbDataAdapter(sql, conn);
DataTable dt = new DataTable("Hoja1");
data.Fill(dt);
dataGridView1.DataSource = dt;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

Por muchas veces que ejecutes el código, no creo que obtengas el error que
nos estás comentando, al menos en circunstancias normales. :-)

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares