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

前端 未结 3 1200
太阳男子
太阳男子 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
    
    0 讨论(0)
  • 2021-01-13 01:51

    The solution is to replace

    count = cmd.ExecuteNonQuery
    

    with

    count = cmd.ExecuteScalar 
    

    Like Robert Beaubien said in his comments

    0 讨论(0)
  • 2021-01-13 02:05
        MysqlConn = New MySqlConnection
        MysqlConn.ConnectionString = "server=localhost;userid=root;password=1234;database=dblms"
        Dim READER As MySqlDataReader
    
        Try
            MysqlConn.Open()
            Dim Query As String
    
            Query = "Select * from dblms.accounts"
            COMMAND = New MySqlCommand(Query, MysqlConn)
            READER = COMMAND.ExecuteReader
            Dim count As Integer
            count = 0
            While READER.Read
                count = count + 1
    
            End While
          MysqlConn.Close()
    
        Catch ex As MySqlException
            MessageBox.Show(ex.Message)
        Finally
            MysqlConn.Dispose()
    
        End Try
    

    the value in count will be the number of rows in a table :) hope this helped

    0 讨论(0)
提交回复
热议问题