sql >> Database teknologi >  >> RDS >> Sqlserver

Upload CSV-fil til SQL-server

For det første behøver du ikke programmeringsting. Du kan uploade CSV-filer direkte til SQL-databasen med SQL-administrationsværktøjer. Men hvis du virkelig har brug for at gøre det gennem programmering, læs bare nedenfor.

Personligt synes jeg, at denne tilgang er den mest effektive og nemmeste måde at gøre det på gennem programmering.

Generelt kan du opnå det i to trin

1. trin er at læse CSV-filen og opbevare posterne som en DataTable .
2. trin er at gemme den hentede DataTable ind i SQL-databasetabel som en masseindtastning

Dette er en funktion, der returnerer CSV-fildata som en DataTable . Ring og gem det i hukommelsen, og du kan gøre, hvad du vil med det.

Denne funktion vil returnere CSV Read-fil til 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 - Brug denne funktion til at indsætte den hentede datatabel i SQL-tabellen

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);
         }
     }

Kilde



  1. 4 måder at finde rækker, der indeholder store bogstaver i Oracle

  2. Sådan sletter du en database i MySQL/MariaDB

  3. Sådan laver du en inventardatabase om adgang

  4. Skift PostgreSQL-kolonner, der bruges i visninger