Solved

Specified Cast Is not Valid VB.NET

Posted on 2009-04-10
7
882 Views
Last Modified: 2013-11-26
Hello,

I'm working on a project and I'm almost there but keep running into errors....

I'm getting the error "Specified Cast Is Not Valid" for the following line:

itmListItem.SubItems.Add(myData.GetString(shtCntr))

This code is to populate a listview.
Any help is greatly appreciated!

thanks!

Imports System.Data.OleDB
 

Public Class ListViewData
 

    Public Sub FillListView(ByRef MyListView As ListView, _

                                                        ByRef myData As OleDbDataReader)

        Dim lvwColumn As ColumnHeader

        Dim itmListItem As ListViewItem
 

        Dim strTest As String
 

        Dim shtCntr As Short
 

        MyListView.Clear()

        For shtCntr = 0 To myData.FieldCount() - 1

            lvwColumn = New ColumnHeader()

            lvwColumn.Text = myData.GetName(shtCntr)

            MyListView.Columns.Add(lvwColumn)

        Next
 

        Do While myData.Read

            itmListItem = New ListViewItem()

            strTest = IIf(myData.IsDBNull(0), "", myData.GetString(0))

            itmListItem.Text = strTest
 

            For shtCntr = 1 To myData.FieldCount() - 1

                If myData.IsDBNull(shtCntr) Then

                    itmListItem.SubItems.Add("")

                Else

                    itmListItem.SubItems.Add(myData.GetString(shtCntr))

                End If

            Next shtCntr
 

            MyListView.Items.Add(itmListItem)

        Loop

    End Sub

End Class
 
 
 
 
 

***Execute Code***
 

Private Sub cmdSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSearch.Click
 

        Dim myCon As OleDbConnection

        Dim sqlCmd As OleDbCommand = New OleDbCommand("SELECT PendingClaimNum, Last, First, DatePending, Custodian FROM Pending WHERE Last Like '" & txtLastName.Text & "'")

        Dim myData As OleDbDataReader

        Dim itmListItem As ListViewItem

        Dim lvhHelper As ListViewData = New ListViewData()

        myCon = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\diw07\My Documents\Daily Backups\phone memo backend.mdb")
 

        Try

            myCon.Open()

            sqlCmd.Connection = myCon

            myData = sqlCmd.ExecuteReader

            lvhHelper.FillListView(MyListView, myData)

            myCon.Close()

        Catch eSql As System.Data.OleDb.OleDbException

            MessageBox.Show(eSql.ToString)

        End Try
 

    End Sub

Open in new window

0
Comment
Question by:c9k9h
  • 4
  • 3
7 Comments
 
LVL 18

Expert Comment

by:Sethi
Comment Utility
Try adding ToString in the end like this:
itmListItem.SubItems.Add(myData.GetString(shtCntr).ToString)
0
 

Author Comment

by:c9k9h
Comment Utility
Same error.... Is this another SQL related issue?
0
 
LVL 18

Accepted Solution

by:
Sethi earned 500 total points
Comment Utility
Nope. Looks like you are not using the dataReader correctly. Please see the following link for a sample code in the end of the page:
http://msdn.microsoft.com/en-us/library/haa3afyz(VS.71).aspx
0
Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

 

Author Comment

by:c9k9h
Comment Utility
I'm not sure that is it either.. I changed the query a bit to hit another (simpler table) and it worked... well kind of.

I tried this query:

Dim sqlCmd As OleDbCommand = New OleDbCommand("SELECT EmpID, LastName, FirstName FROM Employees")

And it returned results.

The results were only the values in the column "EmpID" and they were put in columns from left to right in the list... Not what I was trying to accomplish... Any ideas?
0
 
LVL 18

Expert Comment

by:Sethi
Comment Utility
I am sorry, I have no idea on this.
0
 

Author Comment

by:c9k9h
Comment Utility
Okay No Problem!

It turns out it was a problem with Date/TIme columns, I'm going to use a datagrid instead i think.


Thanks!
0
 
LVL 18

Expert Comment

by:Sethi
Comment Utility
Sounds good.
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

IP addresses can be stored in a database in any of several ways.  These ways may vary based on the volume of the data.  I was dealing with quite a large amount of data for user authentication purpose, and needed a way to minimize the storage.   …
It seems a simple enough task, yet I see repeated questions asking how to do it: how to pass data between two forms. In this article, I will show you the different mechanisms available for you to do just that. This article is directed towards the .N…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now