1

取得した値を変数に返していますが、行が存在するかどうかを確認した後です。ただし、現在テーブルにレコードがないため、if 条件は失敗します。

    Dim sqlstr as string
    Dim da As SqlClient.SqlDataAdapter
    sqlstr = "select max(mat_req_no) as mat_req_no from pos_mrq_hdr"

    If dt.Rows.Count > 0 Then
        ltino = dt.Rows(0)("mat_req_no").tostring

    End If


    the if dt.rows.count > 0 
4

1 に答える 1

1

コード内のいくつかのステートメントを忘れる可能性がありますが、テストするMaxと行カウントで常に (1) が返されるため、戻り値が NULL か NOT かをテストする必要があります

完全なコードは

Imports System.IO
Imports System.Data.SqlClient
Public Class Form1
Dim cnn As SqlConnection
Dim connectionString As String
Dim sqlAdp As SqlDataAdapter
Dim ds As New DataSet
Dim dt As New DataSet

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     connectionString = "Data Source=servername; Initial Catalog=databasename; User ID=userid; Password=password"
    cnn = New SqlConnection(connectionString)
    cnn.Open()
    sqlAdp = New SqlDataAdapter("select max(mat_req_no) as mat_req_no from pos_mrq_hdr", cnn)
    cnn.Close() 'connection close here , that is disconnected from data source
    sqlAdp.Fill(ds)
    sqlAdp.Fill(dt)
    'fetching data from dataset in disconnected mode
    ' MsgBox(ds.Tables(0).Rows.Count)
    If IsDBNull(ds.Tables(0).Rows(0).Item(0)) Then
        '    MsgBox("no")
    Else
        Dim ltino = ds.Tables(0).Rows(0)("mat_req_no").ToString
        '  MsgBox(ltino)
    End If
End Sub
    End Class
于 2013-11-06T05:31:30.683 に答える