· 5 years ago · Apr 03, 2020, 07:50 PM
1public class DataBase
2 {
3 public static DataBase DB = new DataBase();
4 private NpgsqlConnection conn;
5 NpgsqlCommand cmd = new NpgsqlCommand();
6
7 private const string connectionStr = "Host=localhost;Username=postgres;Password=12345678;Database=postgres";
8
9 public void Connect(string connStr = connectionStr)
10 {
11 conn = new NpgsqlConnection(connStr);
12 conn.Open();
13 cmd.Connection = conn;
14 }
15 // language=postgres
16
17 public void InitDB()
18 {
19 cmd.CommandText = "CREATE TABLE IF NOT EXISTS restaurants(id SERIAL PRIMARY KEY ,name VARCHAR(40))";
20 cmd.ExecuteNonQuery();
21 cmd.CommandText =
22 "CREATE TABLE IF NOT EXISTS workers(id SERIAL PRIMARY KEY,first_name VARCHAR(40),last_name VARCHAR(40),coock_type VARCHAR(30))";
23 cmd.ExecuteNonQuery();
24 cmd.CommandText =
25 "CREATE TABLE IF NOT EXISTS timetable(id SERIAL PRIMARY KEY,restaurant VARCHAR(40),data JSON)";
26 cmd.ExecuteNonQuery();
27
28 cmd.CommandText =
29 "CREATE TABLE IF NOT EXISTS rus(id SERIAL PRIMARY KEY,restaurant VARCHAR(40),date_week DATE,workers VARCHAR(40)[])";
30 cmd.ExecuteNonQuery();
31
32 cmd.CommandText =
33 "CREATE TABLE IF NOT EXISTS italy(id SERIAL PRIMARY KEY,restaurant VARCHAR(40),date_week DATE,workers VARCHAR(40)[])";
34 cmd.ExecuteNonQuery();
35
36 cmd.CommandText =
37 "CREATE TABLE IF NOT EXISTS french(id SERIAL PRIMARY KEY,restaurant VARCHAR(40),date_week DATE,workers VARCHAR(40)[])";
38 cmd.ExecuteNonQuery();
39
40
41 }
42
43 public string[] GetAllRestaurants()
44 {
45 cmd.Cancel();
46 cmd = new NpgsqlCommand("SELECT name FROM restaurants",conn);
47 var reader = cmd.ExecuteReader();
48 var restaurants = new List<string>();
49 while (reader.Read())
50 {
51 restaurants.Add(reader.GetString(0));
52 }
53
54 return restaurants.ToArray();
55 }
56
57 }