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:
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:
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:
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(); } }
Je suis donc preneur de toute idée, solution, remarque, niaiserie (mais pas trop ...) ...Code:
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(); } }
merci.