Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
Solved

# Problen converting data in a Datarow

Posted on 2007-03-29
Medium Priority
299 Views
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%(AinIDcol(RS.Fields(0).value)), UnitsISO%)
Case Is > 4
RS2.Fields(i%).value = ConvertEMUtoISO!(AinPhysTyp%(AinIDcol(RS.Fields(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).tostring())), UnitsISO%)
Case 3, 4
drn.Item(i) = ConvertEMUtoISO!(AinPhysTyp%(AinIDcol(dr.Item(i))), dr.Item(i).value)
End Select
Next
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
0
Question by:charlieb01
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 2

LVL 34

Accepted Solution

Sancler earned 2000 total points
ID: 18815356
DataRow.Item already returns the value in the relevant cell but As Object.  It looks like your functions might be requiring specific datatypes.  So try express conversions: CStr(dr.Item(i)) where you execting a String and CInt(dr.Item(i)) where you are expecting an Integer, etc.

Roger
0

LVL 34

Expert Comment

ID: 18815383
For a more detailed run over the relevant stuff, look for "Implicit and Explicit Conversions" in the help files, or see this

http://msdn2.microsoft.com/en-us/library/kca3w8x6(VS.80).aspx

Roger
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

1.0 - Introduction Converting Visual Basic 6.0 (VB6) to Visual Basic 2008+ (VB.NET). If ever there was a subject full of murkiness and bad decisions, it is this one!   The first problem seems to be that people considering this task of converting…
Microsoft Reports are based on a report definition, which is an XML file that describes data and layout for the report, with a different extension. You can create a client-side report definition language (*.rdlc) file with Visual Studio, and build g…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …
###### Suggested Courses
Course of the Month5 days, 16 hours left to enroll