0

コードを実行しようとすると問題が発生します。私はstackoverflowを初めて使用しますが、私の問題を説明しようとします。

さて、説明付きの「InvalidCastExeption」が表示されます

「文字列「ファイル名」からタイプ「整数」への変換は無効です。

ややこしいのは、私の SQL データベースでは FileName が nvarchar(30) であり、sName が文字列であることです。

コードを見てください。薄暗い sName = ... Ps で失敗します - convert.toint / Cint を試みましたが、役に立ちません。そして、整数ではなく文字列として欲しいです!

Imports System
Imports System.Data
Imports System.Data.SqlClient

Public Class SelectrecipieDatabaseManager
    Private Const CONNECTION_STRING As String = "Data Source=RYOW701;Initial Catalog=RyReci;Integrated Security=True"
    Private connection As SqlConnection = Nothing
    Private command As SqlCommand = Nothing

    Public Sub RecipieHandler(ByVal Choice As String)

        Dim reader As SqlDataReader
        connection = New SqlConnection(CONNECTION_STRING)

        Try
            connection.Open()


                Dim Query As String
                Query = "select *  from TbNew"
                command = New SqlCommand(Query, connection)
                reader = command.ExecuteReader

                While reader.Read

                    Dim sName = reader.GetString("FileName")

                    RecipieForm.ComboBoxRec.Items.Add(sName)
                End While



        Catch ex As SqlException
            MessageBox.Show(ex.Message)

        Finally
            connection.Close()
            connection.Dispose()
        End Try

    End Sub

End Class
4

1 に答える 1

0

getStringメソッドは、文字列ではなく序数をパラメーターとして想定しています。代わりにこれを行います:

reader = command.ExecuteReader
Dim columnID As Integer = reader.GetOrdinal("FileName")

While reader.Read
    Dim sName = reader.GetString(columnID)
    RecipieForm.ComboBoxRec.Items.Add(sName)
End While
于 2014-03-23T18:49:37.857 に答える