如何映射表中的列名和源文件中的相应名称

时间:2015-04-11 15:59:04

标签: c# oracle .net-4.5

我正在从excel表中插入数据到oracle数据库。客户提供表。我在database.I中创建了一个表.excel列名和表列名之间的结构和类型相同,但是列名称不同。所以在这种情况下如何在插入数据时映射表中的列名和excel中的列名,我是否需要创建一个xml文件并映射所有值或不同的值?。对于插入我创建了我自己的ado.net dll。

Excel结构如下所示

Firstname     lastname         Age     Salary

ricky         martin          34       45000
Jensen       thomas           37       55000
Kiran        di               32       34000

表结构如下所示

F_name     l_name            _age      _salary

用于插入数据库的代码如下所示

Arraylist ar = new Arraylist();
ar.Add(new FormField(colname, rowvalue, 2));
                dal.CreateInsertQuery(ar, "table_name", out sql, ref ErrorMessage);
                dal.ExecuteNonQuery(sql, ref ErrorMessage, true);

1 个答案:

答案 0 :(得分:1)

也许使用Dictionary<String, String>,如下所示:

Dictionary <String, String> fieldMap = new Dictionary<String, String>();
fieldMap.Add(oldName1, newName1);
fieldMap.Add(oldName2, newName2);
//etc.

然后你做这样的事情,当添加到数组时,你可以在添加调用期间映射字段。

ar.Add(new FormField(fieldMap[colname], rowvalue, 2)); 

其中fieldMap[colname]返回&#34;新名称&#34; colname