Home All Groups Group Topic Archive Search About

Cannot perform '=' operation

Author
9 Jan 2006 11:12 PM
burtamus
I have a simple App set up for testing. I read in a CSV file into a
DataTable. Then I cycle thru integers from 100,000 to 99,999,999 and use the
following to see if that number exists in my DataTable:

        For counter = 100000 To 99999999
            Dim found_CSV_User() As DataRow
            Dim CSV_User As DataRow

            Console.Write(counter)
            found_CSV_User = CSV_Users_Table.Select("EmployeeID = " & counter)
            For Each CSV_User In found_CSV_User
                Console.Write(" -- " & CSV_User("mobile"))
            Next
            Console.Write(vbCrLf)

        Next


Numbers 100,000 thru 107,102 work as expected and give me the Mobile number
in the DataTable. When the counter hits
107,103, I get a System.Data.EvaluateException stating "Cannot perform '='
operation on System.String and System.Int32." on the CSV_Users_Table.Select
line.

BTW, I am using VB.NET, VS2005. It works fine in VS2003. I'm trying to
upgrade
my app.

What is so special about 107,103 and how can I get around it?

Thanks All!!

Author
10 Jan 2006 1:22 AM
shriop
Look at your data in your datatable for the employee with employee id
107103. The error is not in trying to test a value, but rather in
trying to assign it. You're getting some kind of casting exception, I'm
assuming from trying to convert the data from the mobile column to type
int, which probably works for all your other rows, but not in this one.
I'm sure if you compare the mobile number for employee 107103 vs
107102, the difference will be pretty obvious. If not, paste the
values, or at least roughly the same values back here.

Bruce Dunwiddie
http://www.csvreader.com

burtamus wrote:
Show quote
> I have a simple App set up for testing. I read in a CSV file into a
> DataTable. Then I cycle thru integers from 100,000 to 99,999,999 and use the
> following to see if that number exists in my DataTable:
>
>         For counter = 100000 To 99999999
>             Dim found_CSV_User() As DataRow
>             Dim CSV_User As DataRow
>
>             Console.Write(counter)
>             found_CSV_User = CSV_Users_Table.Select("EmployeeID = " & counter)
>             For Each CSV_User In found_CSV_User
>                 Console.Write(" -- " & CSV_User("mobile"))
>             Next
>             Console.Write(vbCrLf)
>
>         Next
>
>
> Numbers 100,000 thru 107,102 work as expected and give me the Mobile number
> in the DataTable. When the counter hits
> 107,103, I get a System.Data.EvaluateException stating "Cannot perform '='
> operation on System.String and System.Int32." on the CSV_Users_Table.Select
> line.
>
> BTW, I am using VB.NET, VS2005. It works fine in VS2003. I'm trying to
> upgrade
> my app.
>
> What is so special about 107,103 and how can I get around it?
>
> Thanks All!!
Author
10 Jan 2006 2:08 AM
Kevin Yu [MSFT]
Hi,

Could you check what type the EmployeeID column is? It seems to be a string
type column. You can try to following:

ound_CSV_User = CSV_Users_Table.Select("EmployeeID = '" & counter & "'")

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."
Author
10 Jan 2006 3:11 PM
burtamus
Thanks for the input. The little tick marks were the answer. I should learn
to use this forum more quickly instead of banging my head against the monitor
all day long.

BTW, 107103 was the last number in the CSV file. 107102 was not even in the
file. All other 476 entries in the CSV file worked fine. Go figure. They all
work now.

Thanks again!!
Author
11 Jan 2006 6:55 AM
Kevin Yu [MSFT]
You're welcome!

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

AddThis Social Bookmark Button