charlieb01
asked on
Problen converting data in a Datarow
Hi,
I need help converting VB6 DAO code to VB.NET 2003 code with ADO.NET. Here is my old code:
For i% = 0 To RS.Fields.count - 2
Select Case i%
Case 0, 1, 2
RS2.Fields(i%).value = RS.Fields(i%).value
Case 3
RS2.Fields(i%).value = PhysUnit$(AinPhysTyp%(AinI Dcol(RS.Fi elds(0).va lue)), UnitsISO%)
Case Is > 4
RS2.Fields(i%).value = ConvertEMUtoISO!(AinPhysTy p%(AinIDco l(RS.Field s(0).value )), RS.Fields(i%).value)
End Select
Next
This code moves some records from 1 table and adds them to another. Basically what happens here is that if the Case is 3 then the column in the old table contains English Measurement Units (such as F, feet, lbs, etc) The RS2 field then gets assigned the corresponding Metric Unit (C, Meters, Kg, etc)
If the case is > 4 then the old table contains an English Measurement Value (for example 32 or 212) Assuming this is a Temperature then the RS2 field would get set to 0 (for 32F) or 100 (for 212F)
My new code in VB.NET is below:
For Each dr As DataRow In dt101.Rows
Dim drn As DataRow = dt404.NewRow
For i As Integer = 0 To 4
Select Case i
Case 0, 1
drn.Item(i) = dr.Item(i)
Case 2
drn.Item(i) = PhysUnit$(AinPhysTyp%((dr. Item(i).to string())) , UnitsISO%)
Case 3, 4
drn.Item(i) = ConvertEMUtoISO!(AinPhysTy p%(AinIDco l(dr.Item( i))), dr.Item(i).value)
End Select
Next
dt404.Rows.Add(drn)
Next
In this case dr is the datarow in the old table and drn is the new datarow in the new table. and Case 2 is the Unit column and Case 3 and 4 are LowLimit and HighLimit respectively (Case 3 and 4 are numeric)
The new code as shown above does not work for Case 2, 3 or 4 and I think I am doing something wrong in identifying the row information. In case 2 I tried using toString as shown above and for case 3 and 4 I attempted to use VALUE which also does not work.
Can anyone offer any help with this one?
Thanks,
Charlie
I need help converting VB6 DAO code to VB.NET 2003 code with ADO.NET. Here is my old code:
For i% = 0 To RS.Fields.count - 2
Select Case i%
Case 0, 1, 2
RS2.Fields(i%).value = RS.Fields(i%).value
Case 3
RS2.Fields(i%).value = PhysUnit$(AinPhysTyp%(AinI
Case Is > 4
RS2.Fields(i%).value = ConvertEMUtoISO!(AinPhysTy
End Select
Next
This code moves some records from 1 table and adds them to another. Basically what happens here is that if the Case is 3 then the column in the old table contains English Measurement Units (such as F, feet, lbs, etc) The RS2 field then gets assigned the corresponding Metric Unit (C, Meters, Kg, etc)
If the case is > 4 then the old table contains an English Measurement Value (for example 32 or 212) Assuming this is a Temperature then the RS2 field would get set to 0 (for 32F) or 100 (for 212F)
My new code in VB.NET is below:
For Each dr As DataRow In dt101.Rows
Dim drn As DataRow = dt404.NewRow
For i As Integer = 0 To 4
Select Case i
Case 0, 1
drn.Item(i) = dr.Item(i)
Case 2
drn.Item(i) = PhysUnit$(AinPhysTyp%((dr.
Case 3, 4
drn.Item(i) = ConvertEMUtoISO!(AinPhysTy
End Select
Next
dt404.Rows.Add(drn)
Next
In this case dr is the datarow in the old table and drn is the new datarow in the new table. and Case 2 is the Unit column and Case 3 and 4 are LowLimit and HighLimit respectively (Case 3 and 4 are numeric)
The new code as shown above does not work for Case 2, 3 or 4 and I think I am doing something wrong in identifying the row information. In case 2 I tried using toString as shown above and for case 3 and 4 I attempted to use VALUE which also does not work.
Can anyone offer any help with this one?
Thanks,
Charlie
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
http://msdn2.microsoft.com/en-us/library/kca3w8x6(VS.80).aspx
Roger