CLR: .Net / Mono / Boo / Otros CLR > C#

 no consigo conectar con Excel mediante OleDb

<< < (4/4)

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

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa