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

Kesalahan Impor File CSV :Nilai Kolom yang berisi pembatas kolom

Sebuah kata peringatan:Saya bukan pembuat kode C# biasa.

Tapi bagaimanapun kode ini melakukan hal berikut:

Ini membuka file bernama C:\Input.TXT

Ini mencari setiap baris. Jika baris memiliki lebih dari 5 koma, semua koma tambahan akan dikeluarkan dari kolom terakhir ketiga (catatan)

Ia menulis hasilnya ke C:\Output.TXT - itulah yang Anda butuhkan untuk benar-benar mengimpor

Ada banyak perbaikan yang bisa dilakukan:

  • Dapatkan jalur file dari pengelola koneksi
  • Penanganan kesalahan
  • Seorang programmer C# yang berpengalaman mungkin dapat melakukan ini dalam hlaf kode

Ingatlah bahwa paket Anda memerlukan akses tulis ke folder yang sesuai

public void Main()
{
    // Search the file and remove extra commas from the third last field
    // Extended from code at
    // http://stackoverflow.com/questions/1915632/open-a-file-and-replace-strings-in-c-sharp
    // Nick McDermaid        

    string sInputLine;
    string sOutputLine;
    string sDelimiter = ",";
    String[] sData;
    int iIndex;

    // open the file for read
    using (System.IO.FileStream inputStream = File.OpenRead("C:\\Input.txt"))
    {
        using (StreamReader inputReader = new StreamReader(inputStream))
        {
            // open the output file
            using (StreamWriter outputWriter = File.AppendText("C:\\Output.txt"))
            {
                // Read each line
                while (null != (sInputLine = inputReader.ReadLine()))
                {
                    // Grab each field out
                    sData = sInputLine.Split(sDelimiter[0]);
                    if (sData.Length <= 6)
                    {
                        // 6 or less fields - just echo it out
                        sOutputLine = sInputLine;
                    }
                    else
                    {
                        // line has more than 6 pieces 
                        // We assume all of the extra commas are in the notes field                                

                        // Put the first three fields together
                        sOutputLine =
                            sData[0] + sDelimiter +
                            sData[1] + sDelimiter +
                            sData[2] + sDelimiter;

                        // Put the middle notes fields together, excluding the delimiter
                        for (iIndex=3; iIndex <= sData.Length - 3; iIndex++)
                        {
                            sOutputLine = sOutputLine + sData[iIndex] + " ";
                        }

                        // Tack on the last two fields
                        sOutputLine = sOutputLine +
                            sDelimiter + sData[sData.Length - 2] +
                            sDelimiter + sData[sData.Length - 1];


                    }

                    // We've evaulted the correct line now write it out
                    outputWriter.WriteLine(sOutputLine);
                }
            }
        }
    }


    Dts.TaskResult = (int)Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success;
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Urutan Bersyarat T-SQL Oleh

  2. Jalankan kueri db (server sql 2005) dengan ajax. Apa itu mungkin?

  3. Bagaimana cara melakukan dan mengembalikan transaksi di sql server?

  4. Perbandingan String Sensitif Huruf SQL

  5. Keluar dari string di SQL Server sehingga aman digunakan dalam ekspresi LIKE