MySQL(Linux)にあるDBからSelectしたい

解決


たー  2005-06-09 14:16:02  No: 90325  IP: [192.*.*.*]

現在クライアント側、Win2kPro(SP4)VB.net(2003 Framework1.1)を使用し、Linux(RedHat)のMySQL(3.23.58)にあるデータベースのあるテーブルからSelectした結果を表示したいと思っております。
  ※Win2kProにインストールされているMySQLはVer4.1.3です。

Win2kPRoにあるMySQLデータベースからは同じソースで、接続サーバー、ホスト名等を変更しただけで、こちらが思っている値を取得してくれます。

しかし、Linux側へ接続し取得し、Select文を実行しようとすると、「☆☆☆マーク」の個所でエラーが発生します。

*****ソース*****
   Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim strFunc As String
        Dim strLOG As String

        Dim strSQL As String

        Dim valErr As VariantType

        Dim DataBase As New Odbc.OdbcConnection("DRIVER={MySQL ODBC 3.51 Driver}; " & _
                                                "SERVER=" & pstrSVRName & ";" & _
                                                "DATABASE=" & pstrDBName & ";" & _
                                                "UID=" & pstrUsrID & ";" & _
                                                "PWD=" & pstrUsrPass & ";" & _
                                                "OPTION=3")

        Dim SQLCommand As Odbc.OdbcCommand = DataBase.CreateCommand()

        On Error GoTo ErrExit

        'SQL作成
        strSQL = "SELECT * FROM M_Syain where syain_cd = '100'"

        SQLCommand.CommandText = strSQL

        DataBase.Open()


        Dim DataReader As Odbc.OdbcDataReader = SQLCommand.ExecuteReader()      '☆☆☆エラー発生個所
        Do While DataReader.Read
            ListBox1.Items.Add(DataReader(0))
        Loop

        DataReader.Close()
        DataBase.Close()

        Exit Sub
ErrExit:
        DataReader.Close()
        DataBase.Close()

        Error Err.Number
    End Sub
*****ソース*****

Error Err.Numberにて表示されるエラーです。
*****エラー*****
'System.ArgumentException' のハンドルされていない例外が プログラム名 で発生しました。

追加情報 : プロシージャ呼び出しまたは引数が有効ではありません。
*****エラー*****

ちなみにLinux側へExecuteNonQuery()を実行し、Insertを行うとデータは正常に追加されています。

接続先のMySQLのバージョンの違いにより起こっていることなのでしょうか?
宣言したところで落ちるのが、いまいちよく分かりません。

Linux、VBともに今回勉強をし始めたので、理解できていない個所が多々あります。

どなたかお分かりになる方がいらっしゃいましたら、宜しくお願い致します。

編集 削除
たー  2005-06-09 14:27:32  No: 90326  IP: [192.*.*.*]

すいません。
初歩的な個所で、ミスが発覚しました。

DBの開発者がテーブル名称を変更していたので、エラーが発生していたようです。
申し訳ありません。

以上、考えて下さった方々、ありがとうございました。

編集 削除
疑問点1  2005-06-09 14:42:31  No: 90327  IP: [192.*.*.*]

>ちなみにLinux側へExecuteNonQuery()を実行し、Insertを行うとデータは正常に追加されています。

では、これの説明がつかないんだけど?

編集 削除