У меня есть три столбца в листе Excel, такие как id, name, family.
Я использую LINQ, и мне нужно, чтобы импортировать данные из Excel в базу данных с кодированием инструкции, у меня есть 6500 записей в листе ExcelКак импортировать данные из листа Excel в базу данных в C# с помощью LINQ?
0
A
ответ
0
Спасибо всем за ваш ответ.
Я нашел свою проблему. Вот код:
string pach = @"D:\C# Projects\ex.xlsx";
var excelData = new ExcelQueryFactory(pach);
var data = from x in excelData.Worksheet<xlsdata>("MySheet")
select x;
DataClassesDataContext db = new DataClassesDataContext();
foreach (var d in data)
{
db.tbl_infos.InsertOnSubmit(new tbl_info
{
id = d.id,
name = d.name,
family = d.family
});
}
db.SubmitChanges();
0
Вам нужно будет импортировать и ссылки OpenXML, откройте листы, лист, лист, IIRC - затем проанализируйте свои столбцы в строки.
Затем создайте адаптер данных SQL, и все это, чтобы использовать либо ConnectionString или SQLConnection, запустить параметризованный запрос, и это в базе данных.
1
Вы можете использовать ниже код, чтобы получить все данные, а затем вы можете преобразовать форму DataTable в список. для примера ниже, чтобы работать, вы должны Microsoft Access Database Engine 2010 Redistributable должны быть установлены
public static DataTable ReadExcelWithoutOffice(string filePath)
{
var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0;IMEX=1;HDR=YES;TypeGuessRows=0;FirstRowHasNames=true;ImportMixedTypes=Text\""; ;
using (var conn = new OleDbConnection(connectionString))
{
conn.Open();
var sheets = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT * FROM [" + sheets.Rows[0]["TABLE_NAME"].ToString() + "] ";
var adapter = new OleDbDataAdapter(cmd);
var ds = new DataSet();
adapter.Fill(ds);
return ds.Tables[0];
}
}
}
Спасибо за ваш ответ. Но это дает мне ошибку. "Там нет строки в позиции 0." в строке 11. В то же время, следует ли мне изменить сумму «ТАБЛИЦА» в строке 8? –