2013-04-02 46 views
0

我不是很熟悉如何在C#中执行此操作。需要连接到Oracle数据库,从目录中获取文件,然后读取文件的每一行。线是这样的:从oracleDB读取文件并添加/删除/修改数据

然后将拆分为字符串,并根据此标志| A |,| D |或| M |我会在里面添加/删除/修改信息。 我不想写我整个代码。只是一些想法和指导方针如何去做。 感谢

回答

2

第一read file:当记录的目标已经存在

var lines = File.ReadLines(@"filename"); 
foreach (string line in lines) 
{ 
    // Then split each line 
    var str = line.Split('|'); // str contains list of splitted string 

    // then save it to db 
    using (var c = new OracleConnection("connectionString")) 
    { 
     c.Open(); 
    // check flag 
    if (str [2] == 'A') 
    { 
     // prepare your sql with splitted array 
     var command = c.CreateCommand(); 
     command.Text = "INSERT INTO table(column) values(:col1)"; 
     command.Parameters.AddWithValue("col1", str[0]) 
     command.ExecuteNonQuery(); 
    } 

    } 

} 
+0

谢谢,我该如何检查参数/标志是什么? –

+0

已编辑,但此代码可写得更好。这只会给你一个起点 – adt

0

一个MERGE可以帮助你......

MERGE INTO target_table T 
USING source_table S 
ON (D.id = S.id) 
WHEN MATCHED THEN UPDATE SET 
    T.field1 = S.field1, 
    T.field2 = S.field2 
    DELETE WHERE (S.flag='D') 
WHEN NOT MATCHED THEN INSERT (id, field1, filed2) 
    VALUES (S.id, S.filed1, S.filed2) 
    WHERE S.flag='A'; 

但这不会插入。

相关问题