質問編集履歴

5

sqlite-net-pclを使用していることを明記

2021/05/06 11:18

投稿

yshr3
yshr3

スコア4

test CHANGED
File without changes
test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  背景
12
12
 
13
- 1.SQLiteを使用。
13
+ 1.sqlite-net-pclを使用。
14
14
 
15
15
  2.1つのDBに対応するように1つのクラスを作成。
16
16
 
@@ -124,4 +124,4 @@
124
124
 
125
125
  ### 補足情報(FW/ツールのバージョンなど)
126
126
 
127
- SQLiteを使用しています
127
+ sqlite-net-pclを使用しています

4

書式の改善

2021/05/06 11:18

投稿

yshr3
yshr3

スコア4

test CHANGED
File without changes
test CHANGED
@@ -8,29 +8,19 @@
8
8
 
9
9
 
10
10
 
11
- 背景 SQLiteを使用しています。
11
+ 背景
12
12
 
13
- 1.1つのDBに対応するように1つのクラス作っている
13
+ 1.SQLite使用
14
14
 
15
- 2.DBから全データを取得するメソッドを各クラスに記述したい
15
+ 2.1つのDBに対応するように1つのクラスを作成
16
16
 
17
- 3.共通部分は「DBhandler」というクラス作って、そのメソッドを利用したい。
17
+ 3.DBから全データ取得するメソッドを各クラスに記述したい。
18
18
 
19
+ 4.共通部分は「DBhandler」というクラスを作って、そのメソッドを利用したい。
20
+
19
- .3の方法として、ジェネリックメソッド内で、別のジェネリックメソッドを呼び出そうと考えました。
21
+ 5.4の方法として、ジェネリックメソッド内で、別のジェネリックメソッドを呼び出そうと考えました。
20
22
 
21
23
 
22
-
23
-
24
-
25
- ### 発生している問題・エラーメッセージ
26
-
27
-
28
-
29
- ```
30
-
31
- 'T' は、ジェネリック型またはメソッド 'SQLiteConnection.Table<T>()' 内でパラメーター 'T' として使用するために、パブリック パラメーターなしのコンストラクターを持つ非抽象型でなければなりません
32
-
33
- ```
34
24
 
35
25
 
36
26
 
@@ -80,11 +70,29 @@
80
70
 
81
71
 
82
72
 
83
- ### 試したこと
73
+ 下の2文について
74
+
75
+ ```
76
+
77
+ connection.CreateTable<T>();
78
+
79
+ return connection.Table<T>().ToList();
80
+
81
+ ```この2文のTに、
82
+
83
+ ```
84
+
85
+ public static List<T> GetAllData<T>(string databasePath)
86
+
87
+ ```のTと同一の型を格納したいと考えています。
88
+
89
+ どうすれば実現できますでしょうか。
84
90
 
85
91
 
86
92
 
93
+ 呼び出し
94
+
87
- 例えばPersonというクラスでは
95
+ 例えばPersonというクラスでは、以下のように使用したいです。
88
96
 
89
97
  ```C#
90
98
 
@@ -98,7 +106,19 @@
98
106
 
99
107
  ```
100
108
 
109
+
110
+
111
+
112
+
101
- というように使用です。
113
+ ### 発生る問題・エラーメッセージ
114
+
115
+
116
+
117
+ ```
118
+
119
+ 'T' は、ジェネリック型またはメソッド 'SQLiteConnection.Table<T>()' 内でパラメーター 'T' として使用するために、パブリック パラメーターなしのコンストラクターを持つ非抽象型でなければなりません
120
+
121
+ ```
102
122
 
103
123
 
104
124
 

3

誤字修正

2021/05/05 13:01

投稿

yshr3
yshr3

スコア4

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- 背景
11
+ 背景 SQLiteを使用しています。
12
12
 
13
13
  1.1つのDBに対応するように1つのクラスを作っている。
14
14
 
@@ -56,7 +56,7 @@
56
56
 
57
57
  {
58
58
 
59
-    public static List<T> GetAllData<T>(string databasePath)
59
+   public static List<T> GetAllData<T>(string databasePath)
60
60
 
61
61
  {
62
62
 
@@ -72,6 +72,10 @@
72
72
 
73
73
  }
74
74
 
75
+ }
76
+
77
+ }
78
+
75
79
  ```
76
80
 
77
81
 
@@ -82,13 +86,17 @@
82
86
 
83
87
  例えばPersonというクラスでは
84
88
 
89
+ ```C#
90
+
85
91
   public static List<Person> GetAllData()
86
92
 
87
- {
93
+ {
88
94
 
89
- return DBhandler.GetAllData<Person>("Person.db");
95
+ return DBhandler.GetAllData<Person>(databasePath);
90
96
 
91
- }
97
+ }
98
+
99
+ ```
92
100
 
93
101
  というように使用したいです。
94
102
 

2

gentaroさんのTypeに関する指摘について修正しました。

2021/05/05 12:47

投稿

yshr3
yshr3

スコア4

test CHANGED
File without changes
test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
  ```
30
30
 
31
- 'type' は、ジェネリック型またはメソッド 'SQLiteConnection.Table<T>()' 内でパラメーター 'T' として使用するために、パブリック パラメーターなしのコンストラクターを持つ非抽象型でなければなりません
31
+ 'T' は、ジェネリック型またはメソッド 'SQLiteConnection.Table<T>()' 内でパラメーター 'T' として使用するために、パブリック パラメーターなしのコンストラクターを持つ非抽象型でなければなりません
32
32
 
33
33
  ```
34
34
 
@@ -56,35 +56,17 @@
56
56
 
57
57
  {
58
58
 
59
- static string DbfolderPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
60
-
61
-
62
-
63
- public static string GetDbPath(string databaseName)
59
+    public static List<T> GetAllData<T>(string databasePath)
64
60
 
65
61
  {
66
62
 
67
- string folderPath = DbfolderPath;
68
-
69
- string databasePath = System.IO.Path.Combine(folderPath, databaseName);
70
-
71
- return databasePath;
72
-
73
- }
74
-
75
-
76
-
77
-    public static List<Type> GetAllData<Type>(string databaseName)
78
-
79
- {
80
-
81
- using (var connection = new SQLiteConnection(DBhandler.GetDbPath(databaseName)))
63
+ using (var connection = new SQLiteConnection(databasePath))
82
64
 
83
65
  {
84
66
 
85
- connection.CreateTable<Type>();
67
+ connection.CreateTable<T>();
86
68
 
87
- return connection.Table<Type>().ToList();
69
+ return connection.Table<T>().ToList();
88
70
 
89
71
  }
90
72
 

1

初心者マークをつけました

2021/05/05 12:42

投稿

yshr3
yshr3

スコア4

test CHANGED
File without changes
test CHANGED
@@ -17,8 +17,6 @@
17
17
  3.共通部分は「DBhandler」というクラスを作って、そのメソッドを利用したい。
18
18
 
19
19
  4.3の方法として、ジェネリックメソッド内で、別のジェネリックメソッドを呼び出そうと考えました。
20
-
21
-
22
20
 
23
21
 
24
22