Como especificar o delimitador ao importar arquivos CSV via OLEDB em C #

Eu preciso executar uma importação complexa em um Microsoft SQL Server 2000.

Como fazer isso em um DTS é muito complicado, estou tentando fazer isso com um pequeno programa C #, mas estou tendo problemas quando preciso importar arquivos CSV: esse arquivo está usando ponto e vírgula como delimitadores de campo em vez de vírgulas e Não consigo que o provedor OLE DB do .NET o reconheça.

Eu já encontrei várias "soluções" na net como usarExtended Properties="Text; Format=Delimited" ou `` Propriedades Estendidas = "Texto; Formato = Delimitado (;)"in the connection string or using aarquivo schema.ini` sem sucesso.

Este é o código real que estou usando:

DataTable Table = new DataTable();

using (OleDbConnection Connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}; Extended Properties=\"Text;HDR=Yes;Format=Delimited\""))
{
    Connection.Open();

    using (OleDbCommand Command = Connection.CreateCommand())
    {
        Command.CommandText = "select [Field 1], [Field 2] from [file.csv]";

        using (OleDbDataAdapter Adapter = new OleDbDataAdapter(Command))
        {
            Adapter.Fill(Table);
        }
    }
}

using (SqlConnection Connection = new SqlConnection("Data Source=server; Initial Catalog=database; User Id=user; Password=password;"))
{
    Connection.Open();

    using (SqlCommand Command = Connection.CreateCommand())
    {
        Command.CommandText = "insert into [table] ([field_1], [field_2], ...) values (@field_1, @field_2, ...)";

        Command.Parameters.Add("field_1", SqlDbType.Date, 0, "Field 1");
        Command.Parameters.Add("field_2", SqlDbType.VarChar, 100, "Field 2");
        ...

        using (SqlDataAdapter Adapter = new SqlDataAdapter())
        {
            Adapter.InsertCommand = Command;

            Adapter.Update(Table);
        }
    }
}

Alguma idéia de como obter o ponto e vírgula como separador de campo sem depender de bibliotecas externas?

Notas:

O bit "sem depender de bibliotecas externas" é porque eu preciso importar o arquivo diretamente no banco de dados e nenhuma biblioteca que encontrei pode fazer isso (eles retornam strings), e nosso PHB não gastará nem um centavo por uma solução comercial.Sei que posso importar o arquivo por meio de um DTS, mas preciso executar ramificações complexas no fluxo de trabalho e alterações de arquivos antes e depois da importação, o que resultaria em saltar dentro e fora do DTS.Fazer tudo dentro do DTS não seria práticopara mim, como eu não sou tão habilidoso em codificação ActiveX e VBScript.

Agradecemos antecipadamente, Andrea.

Editar 1 - @andyb: Código do programa de teste paraschema.ini aproximação:

String ConnectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}; Extended Properties=\"Text\"", Environment.CurrentDirectory);

DataTable Table = new DataTable();

using (OleDbConnection Connection = new OleDbConnection(ConnectionString))
{
    Connection.Open();

    using (OleDbCommand Command = Connection.CreateCommand())
    {
        Command.CommandText = "select * from [file.csv]";

        using (OleDbDataAdapter Adapter = new OleDbDataAdapter(Command))
        {
            Adapter.Fill(Table);
        }
    }
}

questionAnswers(3)

yourAnswerToTheQuestion