Importar datos desde Excel a SQL Base de datos en ASP.NET

Escrito por Programador ASP clásico en Código ASP.NET


Aquí voy a explicar cómo importar datos desde Excel en la base de datos SQL mediante el método de SqlBulkCopy.

En primer lugar debe crear un libro de Excel e insertar algunos datos en él. Para insertar estos datos en una tabla de base de datos SQL Server, llamado Excel_table, con el mismo esquema. Diseño de sus tablas en la base de datos de esta:


id int null
name varchar (50) null
designation varchar (50) null

El diseño de su página aspx como este:


<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>
<span style="color: Red">*</span>Attach Excel file
</td>
<td>
<asp:FileUpload ID="fileuploadExcel" runat="server" />
</td>
</tr>
<tr>
<td></td>
<td>
<asp:Button ID="btnSend" runat="server" Text="Export" onclick="btnSend_Click"  />
</td>
</tr>
</table>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
</form>
</body>
</html>

Después de que escribir el siguiente código en el clic en el botón del codebehind:


protected void btnSend_Click(object sender, EventArgs e)
{
String strConnection = "Data Source=MySystem;Initial Catalog=MySamplesDB;Integrated Security=True";
//file upload path
string path = fileuploadExcel.PostedFile.FileName;
//Create connection string to Excel work book
string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;Persist Security Info=False";
//Create Connection to Excel work book
OleDbConnection excelConnection =new OleDbConnection(excelConnectionString);
//Create OleDbCommand to fetch data from Excel
OleDbCommand cmd = new OleDbCommand("Select [ID],[Name],[Designation] from [Sheet1$]",excelConnection);
excelConnection.Open();
OleDbDataReader dReader;
dReader = cmd.ExecuteReader();
SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection);
//Give your Destination table name
sqlBulk.DestinationTableName = "Excel_table";
sqlBulk.WriteToServer(dReader);
excelConnection.Close();
}
}

Aquí voy a explicar con claridad acerca de esta consulta "Select [ID], [name], [designation ] de [Sheet1$]"

Mediante el uso de esta consulta estamos arrojando los datos de la hoja Sheet1 de Excel. Si se cambia el nombre Sheet1 en Excel será necesario cambiar Sheet1 en la consulta.

No se olvide de cerrar la conexión del archivo de Excel de lo contrario obtendrá errores.

Publicado el 02/01/2012 a las 09:04:30 hrs. | 4219 visitas.

Subir
Web hosting by Somee.com