-
Notifications
You must be signed in to change notification settings - Fork 0
/
DbManager.cs
72 lines (64 loc) · 2.28 KB
/
DbManager.cs
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using System.Data;
using System.Data.SQLite;
namespace MultipleMailMerger
{
public class DbManager
{
private static string pasta = $"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}\\Multiple Mail Merger\\Databases";
private static string nomeDB = "Database";
private static string caminhoDB = $"{pasta}\\{nomeDB}.db";
private static string strConn = $"Data Source={caminhoDB};Version=3";
public string strSQL = "";
public DataTable ExecutarQuery()
{
SQLiteConnection sqliteConnection = new SQLiteConnection(strConn);
sqliteConnection.Open();
SQLiteCommand comando = new SQLiteCommand(strSQL, sqliteConnection);
SQLiteDataAdapter da = new SQLiteDataAdapter(comando);
DataTable dt = new DataTable();
da.Fill(dt);
sqliteConnection.Close();
return dt;
}
public void CriarDb()
{
if (!System.IO.Directory.Exists(pasta))
{
System.IO.Directory.CreateDirectory(pasta);
}
//Para nao substituir a bd com um ficheiro vazio
if (!System.IO.File.Exists(caminhoDB))
{
try
{
SQLiteConnection.CreateFile(caminhoDB);
}
catch (Exception)
{
//Não criou a DB por alguma razao (Faltava criar o diretório)
throw;
}
}
}
public void CriarTabela(string nomeTabela, List<string> campos)
{
//var e ciclo que vai montar os campos da tabela
string caracteristicas = "";
int quantCampos = campos.Count;
for (int i = 0; i < quantCampos; i++)
{
if (i+1 < quantCampos)
{
caracteristicas += campos[i] + " TEXT, ";
}
else
{
//ultima iteração, nao leva ","
caracteristicas += campos[i] + " TEXT";
}
}
strSQL = $"CREATE TABLE IF NOT EXISTS {nomeTabela} ({caracteristicas});";
ExecutarQuery();
}
}
}