質問編集履歴

3

Data

2021/10/31 07:34

投稿

Hajimer-99
Hajimer-99

スコア0

test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  ```
24
24
 
25
- DetaTableにSystem.string表記
25
+ DataTableにSystem.string表記
26
26
 
27
27
  ```
28
28
 

2

前のコードがないとわかりずらいかも知れないのでfor文の前を追加しました。

2021/10/31 07:34

投稿

Hajimer-99
Hajimer-99

スコア0

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  C#を初めて二週間目でわからないことだらけの初心者です。
8
8
 
9
- OracleのデータテーブルにプログラムでCSVファイルを挿入したいのですがうまくいきません。
9
+ OracleのデータベースのテーブルにプログラムでCSVファイルを挿入したいのですがうまくいきません。
10
10
 
11
11
  データ自体の読み込みは成功しているのですがfor文のループでnameとaddressのカラムにCSVに入っている
12
12
 
@@ -36,45 +36,137 @@
36
36
 
37
37
  ソースコード
38
38
 
39
-
39
+ ```
40
40
 
41
+ public static void Main()
42
+
43
+ {
44
+
45
+ //配列からリストに格納する
46
+
47
+ List<string> lists = new List<string>();
48
+
49
+
50
+
51
+ StreamReader sr = new StreamReader(@"C:\file\CSV\test.csv");
52
+
53
+
54
+
55
+ //末尾まで繰り返す
56
+
57
+ while (!sr.EndOfStream)
58
+
59
+ {
60
+
61
+ //CSVファイルの一行を読み込む
62
+
63
+ string line = sr.ReadLine();
64
+
65
+ lists.Add(line);
66
+
67
+ Console.WriteLine(line);
68
+
69
+ }
70
+
71
+
72
+
73
+ string sql = "insert into CSV_TEST(id,name,address) VALUES (:id, :name, :address)";
74
+
75
+ try
76
+
77
+ {
78
+
79
+ using (OracleConnection conn = new OracleConnection())
80
+
81
+ {
82
+
83
+ conn.ConnectionString =
84
+
85
+ "User ID=USER; Password=PASS; Data Source=Data source";
86
+
87
+ conn.Open();
88
+
89
+ Console.WriteLine("DBに接続しました。");
90
+
91
+ using (OracleTransaction transaction = conn.BeginTransaction())
92
+
93
+ {
94
+
95
+ try
96
+
97
+ {
98
+
41
- //CSVデータ挿入
99
+ //csvのデータ挿入
42
100
 
43
101
  for (int i = 0; i < lists.Count(); ++i)
44
102
 
45
- {   
103
+ {
46
104
 
47
-  
48
-
49
- ------string line = lists[i];
105
+ string line = lists[i];
50
106
 
51
107
 
52
108
 
53
- ------ using (OracleCommand cmd = new OracleCommand(sql, conn))
109
+ using (OracleCommand cmd = new OracleCommand(sql, conn))
54
110
 
55
- --- {
111
+ {
56
112
 
57
- --------- cmd.BindByName = true;
113
+ cmd.BindByName = true;
58
114
 
59
- ------------cmd.Parameters.Add(new OracleParameter(":id", OracleDbType.Int32,
115
+ cmd.Parameters.Add(new OracleParameter(":id", OracleDbType.Int32,
60
116
 
61
- ------------(i+1), ParameterDirection.Input));
117
+ (i+1), ParameterDirection.Input));
62
118
 
63
- -------------cmd.Parameters.Add(new OracleParameter(":name", OracleDbType.Varchar2,
119
+ cmd.Parameters.Add(new OracleParameter(":name", OracleDbType.Varchar2,
64
120
 
65
- ------------ line.Split(','), ParameterDirection.Input));
121
+ line.Split(','), ParameterDirection.Input));
66
122
 
67
- ------------cmd.Parameters.Add(new OracleParameter(":address",racleDbType.Varchar2,
123
+ cmd.Parameters.Add(new OracleParameter(":address", OracleDbType.Varchar2,
68
124
 
69
- ------------line.split(','),ParameterDirection.Input));
125
+ line.Split(','),ParameterDirection.Input));
70
126
 
71
127
 
72
128
 
73
- ------------cmd.ExecuteNonQuery();
129
+ cmd.ExecuteNonQuery();
74
130
 
75
- -------}
131
+ }
76
132
 
77
133
  }
134
+
135
+
136
+
137
+ transaction.Commit();
138
+
139
+ }
140
+
141
+ catch (Exception ex)
142
+
143
+ {
144
+
145
+ transaction.Rollback();
146
+
147
+ Console.WriteLine(ex.ToString());
148
+
149
+ }
150
+
151
+ }
152
+
153
+ }
154
+
155
+ }
156
+
157
+ catch (Exception ex)
158
+
159
+ {
160
+
161
+ Console.WriteLine(ex.Message.ToString());
162
+
163
+ }
164
+
165
+ }
166
+
167
+
168
+
169
+ ```
78
170
 
79
171
 
80
172
 

1

質問内容と文字の大小を直しました

2021/10/31 07:31

投稿

Hajimer-99
Hajimer-99

スコア0

test CHANGED
@@ -1 +1 @@
1
- C#でdetatableにCSVデータの挿入のやり方
1
+ C# Oracle データベースのテーブル CSV データの挿入のやり方
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  ```
24
24
 
25
- detatableにSystem.string表記
25
+ DetaTableにSystem.string表記
26
26
 
27
27
  ```
28
28
 
@@ -36,45 +36,43 @@
36
36
 
37
37
  ソースコード
38
38
 
39
- //csvのデータを挿入
39
+
40
40
 
41
41
  //CSVデータの挿入
42
42
 
43
43
  for (int i = 0; i < lists.Count(); ++i)
44
44
 
45
- {
45
+ {   
46
46
 
47
+  
48
+
47
-                 string line = lists[i];
49
+ ------string line = lists[i];
48
50
 
49
51
 
50
52
 
51
- using (OracleCommand cmd = new OracleCommand(sql, conn))
53
+ ------ using (OracleCommand cmd = new OracleCommand(sql, conn))
52
54
 
53
- {
55
+ --- {
54
56
 
55
- cmd.BindByName = true;
57
+ --------- cmd.BindByName = true;
56
58
 
57
- cmd.Parameters.Add(new OracleParameter(":id", OracleDbType.Int32,
59
+ ------------cmd.Parameters.Add(new OracleParameter(":id", OracleDbType.Int32,
58
60
 
59
- (i+1), ParameterDirection.Input));
61
+ ------------(i+1), ParameterDirection.Input));
60
62
 
61
- cmd.Parameters.Add(new OracleParameter(":name", OracleDbType.Varchar2,
63
+ -------------cmd.Parameters.Add(new OracleParameter(":name", OracleDbType.Varchar2,
62
64
 
63
- line.Split(','), ParameterDirection.Input));
65
+ ------------ line.Split(','), ParameterDirection.Input));
64
66
 
65
- cmd.Parameters.Add(new OracleParameter(":address",
67
+ ------------cmd.Parameters.Add(new OracleParameter(":address",racleDbType.Varchar2,
66
68
 
67
-
68
-
69
- racleDbType.Varchar2,
70
-
71
- line.split(','),ParameterDirection.Input));
69
+ ------------line.split(','),ParameterDirection.Input));
72
70
 
73
71
 
74
72
 
75
- cmd.ExecuteNonQuery();
73
+ ------------cmd.ExecuteNonQuery();
76
74
 
77
- }
75
+ -------}
78
76
 
79
77
  }
80
78