Pertama, Anda tidak perlu hal-hal pemrograman. Anda dapat langsung mengunggah file CSV ke SQL Database dengan alat manajemen SQL. Namun, jika Anda benar-benar perlu melakukannya melalui pemrograman, baca saja di bawah ini.
Secara pribadi, menurut saya pendekatan ini adalah cara yang paling efisien dan termudah untuk dilakukan melalui pemrograman.
Secara umum, Anda dapat mencapainya dalam dua langkah
pertama langkahnya adalah membaca file CSV dan menyimpan catatan sebagai DataTable
.
ke-2 langkahnya adalah menyimpan DataTable
yang diambil ke dalam Tabel Database SQL sebagai Entri Massal
Ini adalah fungsi yang mengembalikan Data File CSV sebagai DataTable
. Panggil dan Simpan di memori dan Anda dapat melakukan apa pun yang Anda inginkan dengannya.
Fungsi ini akan mengembalikan file CSV Read ke DataTable.
private static DataTable GetDataTabletFromCSVFile(string csv_file_path)
{
DataTable csvData = new DataTable();
try
{
using(TextFieldParser csvReader = new TextFieldParser(csv_file_path))
{
csvReader.SetDelimiters(new string[] { "," });
csvReader.HasFieldsEnclosedInQuotes = true;
string[] colFields = csvReader.ReadFields();
foreach (string column in colFields)
{
DataColumn datecolumn = new DataColumn(column);
datecolumn.AllowDBNull = true;
csvData.Columns.Add(datecolumn);
}
while (!csvReader.EndOfData)
{
string[] fieldData = csvReader.ReadFields();
//Making empty value as null
for (int i = 0; i < fieldData.Length; i++)
{
if (fieldData[i] == "")
{
fieldData[i] = null;
}
}
csvData.Rows.Add(fieldData);
}
}
}
catch (Exception ex)
{
return null;
}
return csvData;
}
}
SQLBulkCopy - Gunakan fungsi ini untuk memasukkan DataTable yang Diperoleh ke dalam Tabel Sql
static void InsertDataIntoSQLServerUsingSQLBulkCopy(DataTable csvFileData)
{
using(SqlConnection dbConnection = new SqlConnection("Data Source=ProductHost;Initial Catalog=yourDB;Integrated Security=SSPI;"))
{
dbConnection.Open();
using (SqlBulkCopy s = new SqlBulkCopy(dbConnection))
{
s.DestinationTableName = "Your table name";
foreach (var column in csvFileData.Columns)
s.ColumnMappings.Add(column.ToString(), column.ToString());
s.WriteToServer(csvFileData);
}
}
Sumber