Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Unggah file CSV ke server SQL

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konversi 'datetime2' menjadi 'datetime' di SQL Server (Contoh T-SQL)

  2. Apa itu STATISTIK IO di SQL Server?

  3. Bagaimana ORIGINAL_DB_NAME() Bekerja di SQL Server

  4. Waktu Pengumpulan Alarm Awan Spotlight

  5. Bagaimana NTILE() Bekerja di SQL Server