estoy desarrollando esta sencilla aplicación para cargar un archivo de Excel (.xlsx
) e importar los datos presentes en esa hoja de cálculo de Excel en una base de datos de SQL Server Express en .NETCarga de una hoja de Excel e importar los datos en la base de datos de SQL Server
Estoy usando el siguiente código al hacer clic en el botón importar después de navegar y seleccionar el archivo para hacerlo.
protected void Button1_Click(object sender, EventArgs e)
{
String strConnection = "Data Source=.\\SQLEXPRESS;AttachDbFilename='C:\\Users\\Hemant\\documents\\visual studio 2010\\Projects\\CRMdata\\CRMdata\\App_Data\\Database1.mdf';Integrated Security=True;User Instance=True";
//file upload path
string path = FileUpload1.PostedFile.FileName;
//string path="C:\\ Users\\ Hemant\\Documents\\example.xlsx";
//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();
}
Pero el código no se ejecuta cuando uso
string path = FileUpload1.PostedFile.FileName;`
e incluso
string path="C:\ Users\ Hemant\Documents\example.xlsx";`
El dReader
es incapaz de tomar el camino en este formato.
Sólo es capaz de tomar camino en el siguiente formato
string path="C:\\ Users\\ Hemant\\Documents\\example.xlsx";
es decir, con la del \\
en el path.For, que tengo que codificar el camino pero tenemos que buscar el archivo.
Por lo tanto, puede cualquiera, por favor sugerir una solución para utilizar la ruta tomada por el FileUpload1
para importar los datos?
mirada a la cadena de conexión utilizada para SQLExpress. No tienes espacio antes de la carpeta de usuarios. ¿Por qué está poniendo espacios en el camino al archivo Excel? – Steve