Solved

Specified Cast Is not Valid VB.NET

Posted on 2009-04-10
7
891 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
ID: 24118210
Try adding ToString in the end like this:
itmListItem.SubItems.Add(myData.GetString(shtCntr).ToString)
0
 

Author Comment

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

Accepted Solution

by:
Sethi earned 500 total points
ID: 24118404
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
The New “Normal” in Modern Enterprise Operations

DevOps for the modern enterprise offers many benefits — increased agility, productivity, and more, but digital transformation isn’t easy, especially if you’re not addressing the right issues. Register for the webinar to dive into the “new normal” for enterprise modern ops.

 

Author Comment

by:c9k9h
ID: 24130670
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
ID: 24130700
I am sorry, I have no idea on this.
0
 

Author Comment

by:c9k9h
ID: 24131151
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
ID: 24131567
Sounds good.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

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

Flash (http://en.wikipedia.org/wiki/Adobe_Flash) has evolved over the years to where it has become a masterful tool for displaying content screen.  It has excellent layout placement, UI precision as well as rendering capabilities. This, along with t…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

829 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