回答編集履歴

2

追記

2017/06/27 06:19

投稿

mattn
mattn

スコア5030

test CHANGED
@@ -41,3 +41,35 @@
41
41
  ```
42
42
 
43
43
  と書く方法もあります。(嫌いな人もいます)
44
+
45
+
46
+
47
+ 【さらに追記】
48
+
49
+
50
+
51
+ BETWEEN は `BETWEEN ここから AND ここまで` という記述にならないといけません。ちなみに年齢(Age)ですので文字列ではないと思われます。なのでなぜ N を使っているか分かりません。
52
+
53
+
54
+
55
+ ```csharp
56
+
57
+ cmd.CommandText = "INSERT INTO [dbo].[Table2] ([ID], [年齢]) " +
58
+
59
+ "SELECT [ID], [年齢] FROM [dbo].[Table] " +
60
+
61
+ "WHERE ID = N'" + id + "'";
62
+
63
+ if(minAge != null && maxAge != null)
64
+
65
+ {
66
+
67
+ cmd.CommandText += " AND 年齢 = BETWEEN " + minAge + " AND " + maxAge;
68
+
69
+ }
70
+
71
+ ```
72
+
73
+ が正しいと思いますが、如何でしょうか。
74
+
75
+ P.S. コードブロックでは `sql` でなく `csharp` をお使い下さい。

1

追記

2017/06/27 06:19

投稿

mattn
mattn

スコア5030

test CHANGED
@@ -13,3 +13,31 @@
13
13
  "AND 年齢 = N'BETWEEN" + minAge + "'AND'" + maxAge + "'";
14
14
 
15
15
  ```
16
+
17
+
18
+
19
+ 【追記】
20
+
21
+
22
+
23
+ 余談ですが、この SQL を入れた変数を一度画面やログで出力してみると良いです。識別が繋がってしまっていてちゃんと動いていない、といった物が発見出来ます。あとこれは好き好きですが
24
+
25
+
26
+
27
+ ```csharp
28
+
29
+ var sql = @"
30
+
31
+ SELECT
32
+
33
+ *
34
+
35
+ FROM
36
+
37
+ TABLE1
38
+
39
+ ";
40
+
41
+ ```
42
+
43
+ と書く方法もあります。(嫌いな人もいます)