CLR: .Net / Mono / Boo / Otros CLR > C#
no consigo conectar con Excel mediante OleDb
picyo:
Bueno he hecho unas modificaciones al programa, que me parece que está mas limpio, pero sigo sin poder grabar lo que el usuario modifica...
He modificado una sentencia SQL, simplificándola, a ver si me daba problemas por eso..pero nada. os pongo la modificación
--- Código: ---using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using Excel = Microsoft.Office.Interop.Excel;
namespace AbreModificaExcel
{
public partial class Form1 : Form
{
string sRutaArchivo = "";
public Form1()
{
InitializeComponent();
}
private string RutaArchivo(object sender, EventArgs e)
{
// mediante OpenFileDialog se crea la ruta que el usuario da, guardandola en string ruta.
// es una funcion con devolución, para que pueda ser usada de froma global.
string ruta="";
if (openFileDialog1.ShowDialog() == DialogResult.OK) // si pulsamos Ok después de seleccionar ruta
{
ruta = openFileDialog1.FileName;
sRutaArchivo = ruta;
}
return ruta;
}
private void AbrirConexion(object sender, EventArgs e, string ruta)
{
try
{
OleDbConnection MyConnection;
DataSet DtSet;
OleDbDataAdapter MyCommand;
String sConnectionString2010 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+ ruta + ";Extended Properties=Excel 8.0;";
MyConnection = new OleDbConnection(sConnectionString2010);
MyCommand = new OleDbDataAdapter("select * from [Hoja1$]", MyConnection);
//MyCommand.TableMappings.Add("Table", "TestTable");
DtSet = new DataSet();
MyCommand.Fill(DtSet);
dataGridView1.DataSource = DtSet.Tables[0];
//MyConnection.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
private void CerrarConexion(object sender, EventArgs e)
{
}
/// abrirHojaDeDatosToolStripMenuItem_Click
/// ////
/// Acción dada al evento de pulsar el boton del menú "abrir...".Se le pasa la ruta de archivo desde la funcion RutaArchivo
/// <param name="sender"></param>
/// <param name="e"></param>
private void abrirHojaDeDatosToolStripMenuItem_Click(object sender, EventArgs e)
{
string ruta = "";
openFileDialog1.Filter = "Archivos Excel(*.xls)|*.xls|Archivos Excel(*.xlsx)|*.xlsx";
ruta=RutaArchivo(sender,e);
AbrirConexion(sender, e,ruta);
}
private void guardarHojaActualToolStripMenuItem_Click(object sender, EventArgs e)
{
OleDbConnection MyConnection;
DataSet DtSet;
DtSet = new DataSet();
//OleDbDataAdapter MyCommand;
String sConnectionString2010 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+ sRutaArchivo + ";Extended Properties=Excel 8.0;";
MyConnection = new OleDbConnection(sConnectionString2010);
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "UPDATE [Hoja1$] ";
dataGridView1.DataSource = DtSet;
//cmd.ExecuteNonQuery();
MyConnection.Close();
}
}
}
--- Fin del código ---
DiabloRojo:
Qué tal Picyo?
Revisa este link a ver si te resulta de utilidad http://msdn.microsoft.com/en-us/library/system.data.common.dataadapter.update.aspx
Saludos.
picyo:
mal.
no consigo que salga en absoluto. cada vez me parece menos fiable c#
los ejemplos de microsoft tienden a ser demsiado grandes, para reflejar una duda te aparecen diez mas...poco productivos.
no se quizas como hacer mejor la pregunta
picyo:
En fin, muerto el perro muerta la rabia. Me quede sin PC
Navegación
[*] Página Anterior
Ir a la versión completa