Solved

Specified Cast Is not Valid VB.NET

Posted on 2009-04-10
7
886 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
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 

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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Achieve json result 2 65
Angular JS Route 3 45
ASP.NET 5 Templates 2 65
Show/Hide ASP.NET controls with JQuery best practices 3 14
The object model of .Net can be overwhelming at times – so overwhelming that quite trivial tasks often take hours of research. In this case, the task at hand was to populate the datagrid from SQL Server database in Visual Studio 2008 Windows applica…
Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
The is a quite short video tutorial. In this video, I'm going to show you how to create self-host WordPress blog with free hosting service.
This is an introductory video for CloudBerry Managed Backup. You will learn how to sign up with the service and get started in a few minutes.

911 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

18 Experts available now in Live!

Get 1:1 Help Now