Solved

Specified Cast Is not Valid VB.NET

Posted on 2009-04-10
7
893 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
Webinar: Aligning, Automating, Winning

Join Dan Russo, Senior Manager of Operations Intelligence, for an in-depth discussion on how Dealertrack, leading provider of integrated digital solutions for the automotive industry, transformed their DevOps processes to increase collaboration and move with greater velocity.

 

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: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying 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

Suggested Solutions

Title # Comments Views Activity
FInd Image Control Gridview 3 34
Finding Events logs for IIS website that restarts 2 19
SSIS On fail action 5 48
SSIS Start 2 37
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…
In my previous article (http://www.experts-exchange.com/Programming/Languages/.NET/.NET_Framework_3.x/A_4362-Serialization-in-NET-1.html) we saw the basics of serialization and how types/objects can be serialized to Binary format. In this blog we wi…
How to Install VMware Tools in Red Hat Enterprise Linux 6.4 (RHEL 6.4) Step-by-Step Tutorial
Attackers love to prey on accounts that have privileges. Reducing privileged accounts and protecting privileged accounts therefore is paramount. Users, groups, and service accounts need to be protected to help protect the entire Active Directory …

685 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