tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルテーブルからのデータ取得
記事No4115
投稿日: 2006/08/21(Mon) 11:11
投稿者スパナ
ソースとなるMDBファイルにテーブルを作成して、最初の列にランダムのIDを10行分書いて
その中で一番大きな数値を返して変数に代入する関数を作っているのですが、

'GetIDの引数
'StrConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
'             "Data Source=" & Application.StartupPath & m_FileName
'StrSql = "SELECT MAX(ID) FROM テーブル"
'Name = "ID"

Public Function GetId(ByVal StrConnect As String, ByVal StrSql As String, _
                      ByVal Name As String) As Integer
    ' 接続文字列の設定
    m_dbConnect.ConnectionString = StrConnect
    ' 接続を開く
    m_dbConnect.Open()
    ' コマンドの設定
    m_dbCommand = m_dbConnect.CreateCommand()
    ' SQLの設定
    m_dbCommand.CommandText = StrSql

    Dim id As Integer
    'DataReader設定
    m_dbDataReader = m_dbCommand.ExecuteReader(CommandBehavior.SingleRow)
    'ID取得
    id = m_dbDataReader(Name)
    '接続を閉じる
    m_dbConnect.Close()

    Return id
End Function

以上のソースでの 「ID取得」 の部分で止まってしまいます。
何が間違いなのか皆目検討がつきませんのでどうかご指導をお願いします。

[ツリー表示へ]
タイトルRe: テーブルからのデータ取得
記事No4117
投稿日: 2006/08/21(Mon) 14:52
投稿者うなまな
見た感じですが、
> 'StrSql = "SELECT MAX(ID) FROM テーブル"

上記SQLは、"SELECT MAX(ID) AS ID FROM テーブル"

>     'ID取得
>     id = m_dbDataReader(Name)

フィールド取得前に、レコード読込を・・・

'ID取得
If m_dbDataReader.Read Then
  id = m_dbDataReader(Name)
End If

こんなところかな。

[ツリー表示へ]
タイトルRe^2: テーブルからのデータ取得
記事No4119
投稿日: 2006/08/22(Tue) 14:24
投稿者スパナ
ご指摘通りに直したところ綺麗に動作するようになりました。
うなまな様、ありがとうございました。

[ツリー表示へ]