.netを利用した値更新に関して

.netを利用した値更新を行っています。
read rangeでexcelシートを読み込むDTに落とす。
assgin
Vnum=DT01.select(“ID = '” + row(0).ToString().PadLeft(5,"0"c) + “’”).Length

で値があれば更新処理を行う。
Vnum 1の場合:
write cellを用いて
シート名
cell値 “AH”+Vnum2.ToString
Vnum2は、
assgin
Vnum2=DT02.Rows.IndexOf(row)+1
で算出して値の行をもとめる。
DT01.select(“ID = '” + row(0).ToString() + “’”)(0)(“項目名”).ToString()

これであれば問題なく更新できます。
行ったのは、30項目を同じように更新しました。
3500件の情報を更新したところ8.5Hかかりました。
下記内容を30回記載:
項目名と列名を変えました。

write cellを用いて
シート名
cell値 “AH”+Vnum2.ToString
DT01.select(“ID = '” + row(0).ToString() + “’”)(0)(“項目名”).ToString()

あまりにも時間がかかりのでVBAの案もありますが
.netにて完結したく考えています。

update 項目名1、項目名2 ・・・ from dt where id = row(0).tostring:
のようにできればよいと考えています。

ご教示いただければと思います。