Get number of rows in a SQL Server table in VB.NET

前端 未结 3 1239
太阳男子
太阳男子 2021-01-13 01:16

There are 10 rows in primary_student_table.

When I execute the following code, the result was -1.

Dim count As Int16
con.Open()
query =          


        
3条回答
  •  盖世英雄少女心
    2021-01-13 01:48

    You should be using ExecuteScalar() rather than ExecuteNonQuery() because you are fetching a value.

    count = Convert.ToInt16(cmd.ExecuteScalar())
    MsgBox(count.ToString())
    
    • SqlCommand.ExecuteScalar Method

    For proper coding

    • use using statement for proper object disposal
    • use try-catch block to properly handle exceptions

    Example Code:

    Dim connStr As String = "connection string here"
    Dim query As String = "SELECT COUNT(roll) AS rollcount FROM primary_student_table WHERE admityear = 2011 AND batch = 1"
    Using conn As New SqlConnection(connStr)
        Using comm As New SqlCommand()
            With comm
                .Connection = conn
                .CommandText = query
                .CommandType = CommandType.Text
            End With
            Try
                Dim count As Int16 = Convert.ToInt16(cmd.ExecuteScalar())
                MsgBox(count.ToString())
            Catch(ex As SqlException)
                ' put your exception here '
            End Try
        End Using
    End Using
    

提交回复
热议问题