Первый шаг - убрать шум.обе попытки / ловли бесполезны.первый никогда не выбросит, потому что вы просто объединяете строки.вторая не даст никакого значения, это то же самое, что не перехватывать вообще.
Я полагаю, что вы хотите использовать имя таблицы для имени таблицы, а не имя файла.и после заполнения таблицы данных вам необходимо сохранить эти записи в базе данных.
var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Text;HDR=Yes;FMT=Delimited""");
using(var connection = new OleDbConnection(connectionString))
using(var command = connection.CreateCommand())
{
connection.Open();
command.CommandText = "select * from [Sheet1]";
var table = new DataTable();
using(var reader = command.ExecuteReader())
{
table.Load(reader);
return table;
}
}
, затем вы можете использовать эту таблицу для заполнения базы данных
var connectionString = "sql connection string";
using(var connection = new SqlConnection(connectionString))
{
connection.Open();
using(var tx = connection.BeginTransaction())
{
try
{
foreach(DataRow row in table.Rows)
{
using(var command = connection.CreateCommand())
{
command.CommandText = "insert into table (columns...) values (@p1,...)";
//add parameters to command
command.ExecuteNonQuery();
}
}
tx.Commit();
}
catch
{
tx.RollBack();
throw;
}
}
}