回答編集履歴

1

追記

2015/09/09 00:24

投稿

sho_cs
sho_cs

スコア3541

test CHANGED
@@ -1 +1,81 @@
1
1
  PostgreSQLであれば多次元配列を扱える型が存在するので都度行追加で対応できます。
2
+
3
+
4
+
5
+ ---
6
+
7
+ 登録・参照は以下の様な感じで可能です。
8
+
9
+ ```sql
10
+
11
+ CREATE TABLE postmd
12
+
13
+ (
14
+
15
+ id serial NOT NULL,
16
+
17
+ matrix integer[][]
18
+
19
+ )
20
+
21
+ ```
22
+
23
+
24
+
25
+ ```c#
26
+
27
+ using (var con = new NpgsqlConnection(connectionString))
28
+
29
+ {
30
+
31
+ var value = new int[,] { { 1, 2, 3 }, { 4, 5, 6 } };
32
+
33
+ con.Open();
34
+
35
+ var insert = new NpgsqlCommand(@"INSERT INTO postmd (matrix) VALUES (:v)", con);
36
+
37
+ insert.Parameters.Add(new NpgsqlParameter("v", value));
38
+
39
+ insert.ExecuteNonQuery();
40
+
41
+
42
+
43
+ var select = new NpgsqlCommand(@"SELECT id,matrix FROM postmd", con);
44
+
45
+ var dr = select.ExecuteReader();
46
+
47
+ while (dr.Read())
48
+
49
+ {
50
+
51
+ Console.WriteLine("=============");
52
+
53
+ Console.WriteLine("id = {0}", dr[0]);
54
+
55
+ var matrix = (int[,])dr[1];
56
+
57
+
58
+
59
+ for (int i = 0; i < matrix.GetLength(0); i++)
60
+
61
+ {
62
+
63
+ for (int j = 0; j < matrix.GetLength(1); j++)
64
+
65
+ {
66
+
67
+ Console.Write(matrix[i, j]);
68
+
69
+ }
70
+
71
+ Console.WriteLine();
72
+
73
+ }
74
+
75
+ Console.WriteLine("=============");
76
+
77
+ }
78
+
79
+ }
80
+
81
+ ```