2010-07-12 6 views
0

.csv 파일을 데이터 집합에로드했습니다. csv 파일 (수백 줄이 있습니다) 형식은 다음과 같습니다.C에서 데이터 세트의 새로 생성 된 열에 데이터를 삽입하는 방법

"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

나는 데이터 세트를 사용하지 않을 것입니다. 나는 그것을 임시 데이터베이스 테이블에 대량로드 한 다음 각 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 

같은 예를 들어 뭔가를 실행합니다.

+0

안녕하세요, 방금 ​​배우기 시작 했으므로 세부 정보를 알려주시겠습니까? 현재, 나는 원격 SQL 데이터베이스를 업데이트하기 위해 dataTableReader, dataSet 및 SQLbulkCopy를 사용하고있다. 필자의 초기 아이디어는 buldcopy를 사용하여 데이터베이스에 보내기 전에 테이블을 편집하는 것이다. – thinn

+0

. 위에 추가되었습니다. – SteveCav

+0

감사합니다 스티브, 나는 그것에 대해 연구 할 것이다. 틴 – thinn

관련 문제