質問編集履歴
3
Data
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
### 発生している問題・エラーメッセージ
|
11
11
|
|
12
12
|
```
|
13
|
-
|
13
|
+
DataTableにSystem.string表記
|
14
14
|
```
|
15
15
|
|
16
16
|
### 該当のソースコード
|
2
前のコードがないとわかりずらいかも知れないのでfor文の前を追加しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
ここに質問の内容を詳しく書いてください。
|
4
4
|
C#を初めて二週間目でわからないことだらけの初心者です。
|
5
|
-
OracleのデータテーブルにプログラムでCSVファイルを挿入したいのですがうまくいきません。
|
5
|
+
OracleのデータベースのテーブルにプログラムでCSVファイルを挿入したいのですがうまくいきません。
|
6
6
|
データ自体の読み込みは成功しているのですがfor文のループでnameとaddressのカラムにCSVに入っている
|
7
7
|
名前と住所が記載されず[System.string]と表記されてしまいます。
|
8
8
|
いろいろとweb検索をしたのですがfor文でCSVのデータを入れているサイトが見つかりません。
|
@@ -17,27 +17,73 @@
|
|
17
17
|
|
18
18
|
C#ここに言語名を入力
|
19
19
|
ソースコード
|
20
|
-
|
20
|
+
```
|
21
|
+
public static void Main()
|
22
|
+
{
|
23
|
+
//配列からリストに格納する
|
24
|
+
List<string> lists = new List<string>();
|
25
|
+
|
26
|
+
StreamReader sr = new StreamReader(@"C:\file\CSV\test.csv");
|
27
|
+
|
28
|
+
//末尾まで繰り返す
|
29
|
+
while (!sr.EndOfStream)
|
30
|
+
{
|
31
|
+
//CSVファイルの一行を読み込む
|
32
|
+
string line = sr.ReadLine();
|
33
|
+
lists.Add(line);
|
34
|
+
Console.WriteLine(line);
|
35
|
+
}
|
36
|
+
|
37
|
+
string sql = "insert into CSV_TEST(id,name,address) VALUES (:id, :name, :address)";
|
38
|
+
try
|
39
|
+
{
|
40
|
+
using (OracleConnection conn = new OracleConnection())
|
41
|
+
{
|
42
|
+
conn.ConnectionString =
|
43
|
+
"User ID=USER; Password=PASS; Data Source=Data source";
|
44
|
+
conn.Open();
|
45
|
+
Console.WriteLine("DBに接続しました。");
|
46
|
+
using (OracleTransaction transaction = conn.BeginTransaction())
|
47
|
+
{
|
48
|
+
try
|
49
|
+
{
|
21
|
-
|
50
|
+
//csvのデータを挿入
|
22
51
|
for (int i = 0; i < lists.Count(); ++i)
|
23
|
-
{
|
52
|
+
{
|
24
|
-
|
25
|
-
|
53
|
+
string line = lists[i];
|
26
54
|
|
27
|
-
|
55
|
+
using (OracleCommand cmd = new OracleCommand(sql, conn))
|
28
|
-
|
56
|
+
{
|
29
|
-
|
57
|
+
cmd.BindByName = true;
|
30
|
-
|
58
|
+
cmd.Parameters.Add(new OracleParameter(":id", OracleDbType.Int32,
|
31
|
-
|
59
|
+
(i+1), ParameterDirection.Input));
|
32
|
-
|
60
|
+
cmd.Parameters.Add(new OracleParameter(":name", OracleDbType.Varchar2,
|
33
|
-
|
61
|
+
line.Split(','), ParameterDirection.Input));
|
34
|
-
|
62
|
+
cmd.Parameters.Add(new OracleParameter(":address", OracleDbType.Varchar2,
|
35
|
-
|
63
|
+
line.Split(','),ParameterDirection.Input));
|
36
64
|
|
37
|
-
|
65
|
+
cmd.ExecuteNonQuery();
|
38
|
-
|
66
|
+
}
|
39
67
|
}
|
40
68
|
|
69
|
+
transaction.Commit();
|
70
|
+
}
|
71
|
+
catch (Exception ex)
|
72
|
+
{
|
73
|
+
transaction.Rollback();
|
74
|
+
Console.WriteLine(ex.ToString());
|
75
|
+
}
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}
|
79
|
+
catch (Exception ex)
|
80
|
+
{
|
81
|
+
Console.WriteLine(ex.Message.ToString());
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
```
|
86
|
+
|
41
87
|
### 試したこと
|
42
88
|
|
43
89
|
|
1
質問内容と文字の大小を直しました
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
C#で
|
1
|
+
C# で Oracle データベースのテーブルに CSV データの挿入のやり方
|
body
CHANGED
@@ -10,33 +10,32 @@
|
|
10
10
|
### 発生している問題・エラーメッセージ
|
11
11
|
|
12
12
|
```
|
13
|
-
|
13
|
+
DetaTableにSystem.string表記
|
14
14
|
```
|
15
15
|
|
16
16
|
### 該当のソースコード
|
17
17
|
|
18
18
|
C#ここに言語名を入力
|
19
19
|
ソースコード
|
20
|
-
|
20
|
+
|
21
21
|
//CSVデータの挿入
|
22
22
|
for (int i = 0; i < lists.Count(); ++i)
|
23
|
-
{
|
23
|
+
{
|
24
|
+
|
24
|
-
|
25
|
+
------string line = lists[i];
|
25
26
|
|
26
|
-
|
27
|
+
------ using (OracleCommand cmd = new OracleCommand(sql, conn))
|
27
|
-
|
28
|
+
--- {
|
28
|
-
|
29
|
+
--------- cmd.BindByName = true;
|
29
|
-
cmd.Parameters.Add(new OracleParameter(":id", OracleDbType.Int32,
|
30
|
+
------------cmd.Parameters.Add(new OracleParameter(":id", OracleDbType.Int32,
|
30
|
-
(i+1), ParameterDirection.Input));
|
31
|
+
------------(i+1), ParameterDirection.Input));
|
31
|
-
cmd.Parameters.Add(new OracleParameter(":name", OracleDbType.Varchar2,
|
32
|
+
-------------cmd.Parameters.Add(new OracleParameter(":name", OracleDbType.Varchar2,
|
32
|
-
|
33
|
+
------------ line.Split(','), ParameterDirection.Input));
|
33
|
-
cmd.Parameters.Add(new OracleParameter(":address",
|
34
|
+
------------cmd.Parameters.Add(new OracleParameter(":address",racleDbType.Varchar2,
|
34
|
-
|
35
|
-
racleDbType.Varchar2,
|
36
|
-
line.split(','),ParameterDirection.Input));
|
35
|
+
------------line.split(','),ParameterDirection.Input));
|
37
36
|
|
38
|
-
cmd.ExecuteNonQuery();
|
37
|
+
------------cmd.ExecuteNonQuery();
|
39
|
-
}
|
38
|
+
-------}
|
40
39
|
}
|
41
40
|
|
42
41
|
### 試したこと
|