Importar datos de excel a sql server

De manera diaria actualizo una tabla en sql server con datos que modifico en excel, y lo hago importando de excel a sql, desarrolle una aplicación que consta de un formulario con un boton y un DataGridView (les escribo el codigo) que pasa la inflacionario de excel al DataGridView y de ahi a la tabla en sql pero me marca el siguiente error :

"Primera excepción del tipo 'System.InvalidOperationException' en System.Data.dll

Información adicional: No se puede tener acceso a la tabla de destino '911'.

Si hay un controlador para esta excepción, el programa puede continuar de forma segura."

¿Alguien me puede brindar su ayuda?

Codigo:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Data.ProviderBase;

namespace Importacion_CSharp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Btn_Importar_Click(object sender, EventArgs e)
{
string conexion = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\\Users\\pea5\\Documents\\CAPTURA 911\\IMPORTAR911.xlsx;Extended Properties=\"Excel 12.0 Xml; HDR=Yes\"";

OleDbConnection origen = default(OleDbConnection);
origen = new OleDbConnection(conexion);

OleDbCommand seleccion = default(OleDbCommand);
seleccion = new OleDbCommand("Select * From [Hoja1$]", origen);

OleDbDataAdapter adaptador = new OleDbDataAdapter();
adaptador.SelectCommand = seleccion;

DataSet ds = new DataSet();

adaptador.Fill(ds);

dataGridView1.DataSource = ds.Tables[0];

origen.Close();

SqlConnection conexion_destino = new SqlConnection();
conexion_destino.ConnectionString = "Data Source=PEA14-PC\\SQLEXPRESSSSIIE;Initial Catalog=SIC;Integrated Security=True";

conexion_destino.Open();

SqlBulkCopy importar = default(SqlBulkCopy);
importar = new SqlBulkCopy(conexion_destino);
importar.DestinationTableName = "911";
importar.WriteToServer(ds.Tables[0]);
conexion_destino.Close();

}

private void pictureBox2_Click(object sender, EventArgs e)
{

}

private void Form1_Load(object sender, EventArgs e)
{

}
}
}

1 respuesta

Respuesta

Has pensado construir la instrucción INSERT de SQL, utilizando los datos del Excel, vas leyendo línea a línea, y construyes la instrucción con el contenido de las celdas que te interesa, haces el INSERT y sigues con la siguiente... no se si sera lo mas optimo pero te puede funcionar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas