Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

CSV फ़ाइल आयात करें त्रुटि:स्तंभ मान जिसमें स्तंभ परिसीमक शामिल है

चेतावनी का एक शब्द:मैं नियमित C# कोडर नहीं हूं।

लेकिन वैसे भी यह कोड निम्न कार्य करता है:

यह C:\Input.TXT

. नामक फ़ाइल खोलता है

यह प्रत्येक पंक्ति को खोजता है। यदि पंक्ति में 5 से अधिक अल्पविराम हैं, तो यह तीसरे अंतिम क्षेत्र (नोट्स) से सभी अतिरिक्त अल्पविरामों को हटा देती है

यह C:\Output.TXT को परिणाम लिखता है - यही वह है जिसे आपको वास्तव में आयात करने की आवश्यकता है

इसमें कई सुधार किए जा सकते हैं:

  • कनेक्शन प्रबंधकों से फ़ाइल पथ प्राप्त करें
  • त्रुटि प्रबंधन
  • एक अनुभवी C# प्रोग्रामर शायद आधे कोड में ऐसा कर सकता है

ध्यान रखें कि आपके पैकेज को उपयुक्त फ़ोल्डर में लिखने की आवश्यकता होगी

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. मुझे सी # में बाइट या शॉर्ट के बजाय int का उपयोग क्यों करना चाहिए

  2. कैसे जांचें कि शून्य नहीं है और SQL सर्वर में खाली स्ट्रिंग नहीं है?

  3. डेटाबेस से सभी कनेक्शनों को समाप्त करने के लिए स्क्रिप्ट (RESTRICTED_USER ROLLBACK से अधिक)

  4. SQL सर्वर (T-SQL उदाहरण) में 'समय' को 'datetime2' में बदलें

  5. SUSE 12 . पर SQL सर्वर कैसे स्थापित करें