質問編集履歴

4

文言変更

2019/08/02 00:40

投稿

Com
Com

スコア30

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  ※やりたい事
10
10
 
11
- 数万件のデータが入ったCSVデータを一括でMySQLの入れたいです。
11
+ 数万件のデータが入ったCSVデータを一括でMySQLのブル追加したいです。
12
12
 
13
13
  例えばですが、CSVデータには商品コードと個数が入っているときに
14
14
 

3

やりたいことを追加

2019/08/02 00:39

投稿

Com
Com

スコア30

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,17 @@
6
6
 
7
7
 
8
8
 
9
+ ※やりたい事
10
+
11
+ 数万件のデータが入ったCSVデータを一括でMySQLのデータに入れたいです。
12
+
13
+ 例えばですが、CSVデータには商品コードと個数が入っているときに
14
+
15
+ このデータを商品情報のテーブルデータと結合して、出荷テーブルに入れたいとき
16
+
9
- MS SQLServer 次の段で DataTable をDBにパラメータとして渡せたのですが
17
+ MS SQLServerを使った場合、いったんCSVデータをDataTableに込んそのDataTable を
18
+
19
+ DBにパラメータとして更新していました。
10
20
 
11
21
  (↓こんな感じ)
12
22
 
@@ -26,11 +36,21 @@
26
36
 
27
37
  cmd.Parameters["@DT"].TypeName = "userTable";
28
38
 
29
- cmd.Parameters["@DT"].Value = DataTable;
39
+ cmd.Parameters["@DT"].Value = CsvDataTable; //←CSVデータをDataTableに入れてる
30
40
 
31
41
 
32
42
 
43
+ string sql
44
+
33
- cmd.CommandText = "insert into targetTable select A.* from @DT as A";
45
+ sql = "insert into targetTable ";
46
+
47
+ sql += "select a.商品コード, b.商品名, a.個数, b.商品価格, (a.個数 * b.商品価格) as 小計 ";
48
+
49
+ sql += "from @DT as a ";
50
+
51
+ sql += "left join 商品テーブル as b on b.商品コード = a.商品コード";
52
+
53
+ cmd.CommandText = sql;
34
54
 
35
55
  cmd.ExecuteNonQuery()
36
56
 

2

初心者アイコン追加

2019/08/02 00:39

投稿

Com
Com

スコア30

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- Windows10で visual studio 2017 communityを使ってコードを書いております。
1
+ Windows10で visual studio 2017 communityを使ってコードを書いております。
2
2
 
3
3
 
4
4
 

1

変数修正

2019/08/02 00:17

投稿

Com
Com

スコア30

test CHANGED
File without changes
test CHANGED
@@ -18,21 +18,21 @@
18
18
 
19
19
    cn.Open();
20
20
 
21
-   SqlCommand cm = cn.CreateCommand();
21
+   SqlCommand cmd = cn.CreateCommand();
22
22
 
23
- cmb.Parameters.Add(new SqlParameter("@DT", SqlDbType.Structured));
23
+ cmd.Parameters.Add(new SqlParameter("@DT", SqlDbType.Structured));
24
24
 
25
-   cmb.Parameters["@DT"].Direction = ParameterDirection.Input;
25
+   cmd.Parameters["@DT"].Direction = ParameterDirection.Input;
26
26
 
27
- cmb.Parameters["@DT"].TypeName = "userTable";
27
+ cmd.Parameters["@DT"].TypeName = "userTable";
28
28
 
29
- cmb.Parameters["@DT"].Value = DataTable;
29
+ cmd.Parameters["@DT"].Value = DataTable;
30
30
 
31
31
 
32
32
 
33
- cmb.CommandText = "insert into targetTable select A.* from @DT as A";
33
+ cmd.CommandText = "insert into targetTable select A.* from @DT as A";
34
34
 
35
- cmb.ExecuteNonQuery()
35
+ cmd.ExecuteNonQuery()
36
36
 
37
37
  ```
38
38