Рейтинг:
29
sp_suresh
Если новая версия excel поддерживает более 65000 строк для экспорта, то вы можете
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\testing.xlsx;Extended Properties='Excel 12.0 Xml;HDR=Yes;IMEX=1;'");
OleDbCommand cmd = new OleDbCommand("select * from [Sheet1$]");
if (conn.State == System.Data.ConnectionState.Open)
{
conn.Close();
}
conn.Open();
OleDbDataAdapter adap = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
adap.Fill(ds);
this.GridView1.DataSource = ds.Tables[0].DefaultView;
conn.Close();
другой способ
string[] array2 = Directory.GetFiles(@"D:\doc", "*.xls");
foreach (string name in array2)
{
string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;""";
excelConnectionString=string.Format(excelConnectionString,name).Trim();
Console.WriteLine(excelConnectionString);
// Create Connection to Excel Workbook
using (OleDbConnection connection =new OleDbConnection(excelConnectionString))
{
OleDbCommand command = new OleDbCommand("Select Field1,Field2,Field3 FROM [Sheet1$]", connection);
connection.Open();
// Create DbDataReader to Data Worksheet
using (DbDataReader dr = command.ExecuteReader())
{
// SQL Server Connection String
string sqlConnectionString = @"Data Source=Machine007\SQLEXPRESS;Initial Catalog=BankDB;Integrated Security=True";
// Bulk Copy to SQL Server
using (SqlBulkCopy bulkCopy =
new SqlBulkCopy(sqlConnectionString))
{
bulkCopy.DestinationTableName = "BankCodes";
bulkCopy.WriteToServer(dr);
}
}
}
}
nira.parmar
Привет, спасибо за ваше предложение, но я хочу загрузить миллионы записей в базу данных.
Пожалуйста, скажите оптимальный способ?
Herman<T>.Instance
используйте BCP
Herman<T>.Instance
Утилита, массовое копирование. Может быть вызван через хранимые процедуры и через C#
nira.parmar
пожалуйста, скажите мне, как использовать его в c# для импорта файла excel в базу данных
nira.parmar
Привет друг,
Когда я загружаю файл .mdb, имеющий 900000 строк, он выбрасывает
ошибка:"тайм-аут истек. Время ожидания истекло до завершения операции или сервер не отвечает." Пожалуйста, скажите мне решение, которое я застрял. Если есть какое-то оптимальное решение для импорта этих огромных записей на сервер MSsql, то, пожалуйста, скажите мне?