none
Consulta Importar Datos Sql RRS feed

  • Pregunta

  • Hola a tod@s, 

    Estoy importando una hoja excel a SQL y lo realizo así:

            

    public void importarDatos(DataTable datatableExcel)
            {
                cadenaConexion = "Data Source=PC-SALON;Initial Catalog=Escuela;Integrated Security=True";

                try
                {
                    conexion = new SqlConnection(cadenaConexion);
                    conexion.Open();
                    importaDatos = new SqlBulkCopy(conexion);
                    importaDatos.DestinationTableName = "Alumnos";
                    importaDatos.WriteToServer(datatableExcel);
                }
                catch (SqlException sqlEx)
                {
                    MessageBox.Show(sqlEx.Message);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally 
                {
                    conexion.Close();
                }

            }

    Esto me funciona correctamente y sin problemas. El problema es, que necesito añadir una columna más en SQL de las que se encuentra en la hoja de excel. 

    Se puede añadir esa columna más en la misma consulta? o tendría que hacerlo en otra distinta?

    El dato a añadir es un ID siempre sería el mismo.

    Gracias.


    • Editado pinta.xixon lunes, 1 de diciembre de 2014 12:11
    lunes, 1 de diciembre de 2014 12:09

Respuestas

  • El sitio oportuno para añadir la columna adicional sería dentro del datatableExcel. Como es de tipo DataTable, siempre puedes hacerle un .Columns.Add(...) para añadirle una columna más en memoria. Después le rellenas en esa columna los datos que quieras, y así cuando ejecutes el WriteToServer enviará todos los datos al servidor para que esa columna se grabe junto con las demás que provienen de Excel.

    • Marcado como respuesta pinta.xixon lunes, 1 de diciembre de 2014 15:25
    lunes, 1 de diciembre de 2014 12:19

Todas las respuestas

  • El sitio oportuno para añadir la columna adicional sería dentro del datatableExcel. Como es de tipo DataTable, siempre puedes hacerle un .Columns.Add(...) para añadirle una columna más en memoria. Después le rellenas en esa columna los datos que quieras, y así cuando ejecutes el WriteToServer enviará todos los datos al servidor para que esa columna se grabe junto con las demás que provienen de Excel.

    • Marcado como respuesta pinta.xixon lunes, 1 de diciembre de 2014 15:25
    lunes, 1 de diciembre de 2014 12:19
  • Muchas gracias,

    Estaba intentando buscar un comando sql y lo más fácil es hacerlo así.

    Un saludo,

    lunes, 1 de diciembre de 2014 15:26