Перерыв это на два этапа:
1) Сохраните файл где-то - это очень часто можно увидеть это:
строка saveFolder = @ "C: \ Temp \ загрузки"; // Выберите папку на вашем компьютере для хранения загруженных файлов.
string filePath = Path.Combine (saveFolder, FileUpload1.FileName);
FileUpload1.SaveAs (filePath); Теперь у вас есть файл локально, и реальная работа может быть выполнена.
2) Получить данные из файла. Ваш код должен работать так, как есть, но вы можете просто написать строку подключения таким образом:
string excelConnString = String.Format ("Provider = Microsoft.Jet.OLEDB.4.0; Источник данных = {0}; Расширенные свойства =" Excel 12.0 ";", filePath); Затем вы можете подумать об удалении файла, который вы только что загрузили и импортировали.
Чтобы обеспечить более конкретный пример, мы можем реорганизовать свой код на два метода:
private void SaveFileToDatabase(string filePath)
{
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";
String excelConnString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0\"", filePath);
//Create Connection to Excel work book
using (OleDbConnection excelConnection = new OleDbConnection(excelConnString))
{
//Create OleDbCommand to fetch data from Excel
using (OleDbCommand cmd = new OleDbCommand("Select [ID],[Name],[Designation] from [Sheet1$]", excelConnection))
{
excelConnection.Open();
using (OleDbDataReader dReader = cmd.ExecuteReader())
{
using(SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection))
{
//Give your Destination table name
sqlBulk.DestinationTableName = "Excel_table";
sqlBulk.WriteToServer(dReader);
}
}
}
}
}
private string GetLocalFilePath(string saveDirectory, FileUpload fileUploadControl)
{
string filePath = Path.Combine(saveDirectory, fileUploadControl.FileName);
fileUploadControl.SaveAs(filePath);
return filePath;
}
Вы могли бы просто затем вызвать SaveFileToDatabase (GetLocalFilePath (@ "C: \ Temp \ загрузки", FileUpload1));
Рассмотрите другие расширенные свойства для строки подключения Excel. Они полезны!
Другие улучшения, которые вы, возможно, захотите сделать, включают в себя включение строки подключения базы данных Sql в конфигурацию и добавление правильной обработки исключений. Пожалуйста, рассмотрите этот пример только для демонстрации!
Перейдите по этой ссылке [] (stackoverflow.com http://stackoverflow.com/questions/12378705/importing-excel-to-sql-database-using -vb-net-and-asp-net) –
также проверьте этот ответ http://stackoverflow.com/questions/10447015/uploading-an-excel-sheet-and-importing-the-data-into-sql-server- база данных –