我已将.csv文件加载到数据集中。 csv文件(有几百行)格式如下;
"UCPTlogTime","UCPTpointName","UCPTvalue","UCPTunit"
2010-07-05T11:08:07.390+08:00,"Net/LON/wattnode1/VirtFb/nvoCurrent[0]","0.128767","Amperes"
2010-07-05T11:08:10.720+08:00,"Net/LON/wattnode1/VirtFb/nvoPower[0]","28.90336","Watts"
2010-07-05T11:08:11.680+08:00,"Net/LON/wattnode1/VirtFb/nvoCurrent[0]","0.128767","Amperes"
2010-07-05T11:08:18.830+08:00,"Net/LON/wattnode1/VirtFb/nvoPower[0]","34.48953","Watts"
正如您所见,在UCPTvalue列中,保存了两种不同类型的数据。 我想要做的是在用所有这些数据更新远程服务器之前,我想在单个列中分离安培数据和瓦特数据。是否有任何C#代码在数据集中创建新列并使用现有列中的数据进行设置?
答案 0 :(得分:0)
我不会自己使用数据集。我将它批量加载到临时数据库表中,然后更新每个UCPT单元类型的相关表(换句话说,在存储过程中完成所有操作)。
[已编辑以获取更多详细信息]
创建一个名为tmpUpdate的新表。
SQLBulk将数据复制到其中。
然后运行一个使用它进行多次更新的存储过程,例如
update liveTable set latestAmps=tempUpdate.UCPTvalue
FROM liveAmpTable JOIN tempUpdate ON liveAmpTable.UCPTpointName=tempUpdate.UCPTpointName
WHERE tempUpdate.UCPTunit='Amperes'
update liveTable set latestWatts=tempUpdate.UCPTvalue
FROM liveWattsTable JOIN tempUpdate ON liveWattsTable.UCPTpointName=tempUpdate.UCPTpointName
WHERE tempUpdate.UCPTunit='Watts'
truncate table tempUpdate --clear temp data
这假设只有一个用户同时进行更新。