Cómo especificar el delimitador al importar archivos CSV a través de OLEDB en C #

Necesito realizar una importación compleja en un Microsoft SQL Server 2000.

Dado que hacerlo en un DTS es demasiado complicado, estoy tratando de hacerlo con un pequeño programa C #, pero tengo problemas cuando necesito importar un archivo CSV: este archivo está usando puntos y comas como delimitadores de campo en lugar de comas y No puedo lograr que el proveedor OLE DB de .NET lo reconozca.

Ya encontré varias "soluciones" en la red como usarExtended Properties="Text; Format=Delimited" o `` Propiedades extendidas = "Texto; Formato = Delimitado (;)"in the connection string or using ael archivo schema.ini` fue en vano.

Este es el código real que estoy 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);
        }
    }
}

¿Alguna idea sobre cómo lograr usar el punto y coma como separador de campo sin depender de bibliotecas externas?

Notas:

El bit "sin depender de bibliotecas externas" es porque necesito importar el archivo directamente a la base de datos y ninguna biblioteca que encontré puede hacer esto (devuelven cadenas), y nuestro PHB no arrojará ni un centavo por una solución comercial.Sé que puedo importar el archivo a través de un DTS, pero necesito realizar una bifurcación compleja en el flujo de trabajo y alteraciones del archivo antes y después de la importación, y eso resultaría en entrar y salir del DTS.Hacer todo dentro del DTS no sería prácticopara mi, ya que no soy tan hábil en la codificación ActiveX y VBScript.

Gracias de antemano, Andrea.

Edición 1 - @andyb: Probar el código del programa paraschema.ini acercarse a, aproximarse:

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

Respuestas a la pregunta(3)

Su respuesta a la pregunta