Bonjour,
Je dois réaliser un projet en C# qui utilise SQLite. Une des fonctionnalité de mon programme est entre autre de transférer une trentaine de fichiers CSV dans une trentaine de table dans une base de données SQLite. J'ai réalisé la manipulation à la main pour quelques tables en utilisant les commandes ".mod, .separator et .import", cela fonctionne parfaitement. Cependant, je n'arrive pas ç transposer ces commandes dans mon programme C# ...
Je précise que je debute en C# et en SQLite, soyez indulgent !

Voici qqs extrait de mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SQLite;
using System.IO;
 
namespace WLMExtract
{
    class CreateDataBase
    {
        //private readonly Dictionary<string, Action<string[]>> actions;          //Dictionnaire de méthodes
        private readonly string DataBaseName = "DataBase.sqlite";
        private SQLiteConnection SQLBase;
        private SQLiteCommand SQLCmd;
        private SQLiteParameter SQLParam;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
        public CreateDataBase()
        {
            try
            {   
                // Efface une éventuelle base de données précédente portant le meme nom
                if (File.Exists(@".\" + DataBaseName))
                {
                    File.Delete(@".\" + DataBaseName);
                }
 
                SQLiteConnectionStringBuilder SQLCSB = new SQLiteConnectionStringBuilder();
 
                // Paramètres permettant la création de la base
                SQLCSB.DataSource = DataBaseName; 
                SQLCSB.FailIfMissing = false;
 
                string ConnectionString = SQLCSB.ToString();
 
                // Création de la connexion et ouverture de celle-ci
                SQLBase = new SQLiteConnection(ConnectionString);
 
                SQLBase.Open();
 
                // Création de l'objet SQLiteCommand, permettant la réalisation de requête SQL
                SQLCmd = SQLBase.CreateCommand();
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine("\n\nCaught exception:");
                Console.Error.WriteLine(ex.ToString());
                Console.ReadKey();
            }
        }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        public void SQLiteParameters()
        {
            try
            {
                string query = "", coma = ";";
 
                query = ".mod csv";
                SQLCmd.CommandText = query;
                SQLCmd.CreateParameter();
 
                query = ".separator " + coma;
 
                SQLCmd.CommandText = query;
                SQLCmd.CreateParameter();
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine("\n\nCaught exception:");
                Console.Error.WriteLine(ex.ToString());
                Console.ReadKey();
            }
        }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
       public void CSVToTable(string tableName)
        {
            try
            {
                string query = "";
 
                query = ".import " + '"' + tableName + ".csv" + '"' + " " + formatedName(tableName);
 
                SQLCmd.CommandText = query;
                SQLCmd.CreateParameter();
 
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine("\n\nCaught exception:");
                Console.Error.WriteLine(ex.ToString());
                Console.ReadKey();
            }
        }
Je suis donc preneur de toute idée, solution, remarque, niaiserie (mais pas trop ...) ...
merci.