Как проанализировать файл CSV на веб-сайте ASP.NET? - PullRequest
1 голос
/ 20 января 2011

На моем веб-сайте у меня есть много CSV-файлов, которые мне нужно проанализировать и вставить их данные в базу данных MySQL.

Как программно проанализировать CSV на моем веб-сайте?

Ответы [ 3 ]

6 голосов
/ 29 марта 2012

Я рекомендую взглянуть на TextFieldParserClass в .Net.Вам нужно включить

Imports Microsoft.VisualBasic.FileIO.TextFieldParser

Вот краткий пример:

Dim afile As FileIO.TextFieldParser = New FileIO.TextFieldParser(FileName)
Dim CurrentRecord As String() ' this array will hold each line of data
afile.TextFieldType = FileIO.FieldType.Delimited
afile.Delimiters = New String() {","}
afile.HasFieldsEnclosedInQuotes = True

' parse the actual file
Do While Not afile.EndOfData
    Try
        CurrentRecord = afile.ReadFields
    Catch ex As FileIO.MalformedLineException
        Stop
    End Try
Loop
2 голосов
/ 20 января 2011

Вот довольно хороший анализатор CSV. Вам просто нужно пройтись по набору данных, чтобы поместить его обратно в базу данных.

http://www.codeproject.com/KB/database/CsvReader.aspx

0 голосов
/ 22 января 2011

Получил ответ:

Я успешно выполнил анализ моего CSV-файла, используя следующий код:

_nNrRowsProccessed = 0;

    string connectionString = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq="+ConfigurationManager.AppSettings["csvFolder"]+";";

    OdbcConnection conn = new OdbcConnection(connectionString);

    try
    {
        conn.Open();

        string strFileName = ConfigurationManager.AppSettings["csvFileName"];
        string strSQL = "Select * from " + strFileName;

        OdbcCommand cmd = new OdbcCommand();
        cmd.Connection = conn;
        cmd.CommandText = strSQL;
        cmd.CommandType = CommandType.Text;

        OdbcDataReader reader = cmd.ExecuteReader();
        string strLine = null;

        MasterCalendar_DB.OpenMySQLConnection();

        while (reader.Read())
        {
            // insert data into mastercalendar
            strLine = reader[0].ToString();
            string[] arLine = strLine.Split(';');

            string strAgencyPropertyID = arLine[0];
            DateTime dt = DateTime.Parse(arLine[1]);
            Int64 nDate = (Int64)Util.ConvertToUnixTimestamp(dt);
            String strAvailability = (arLine[2]);

            _nNrRowsProccessed++;
            MasterCalendar_DB.Insert(strAgencyPropertyID, nDate, strAvailability);
        }
    }
    finally
    {
        conn.Close();
        MasterCalendar_DB.CloseMySQLConnection();
    }

Также вам необходимодобавьте следующий код под тегом Configurations в ваш файл web.config:

<appSettings> <add key="csvFileName" value="<file_name>.csv" /> <add key="csvFolder" value="<filePath>"/> </appSettings>

Надеюсь, это кому-нибудь поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...