2011-10-11 91 views
4

我试图获取SQL语句的结果并将其存储在vb中的一个整数变量“count”中,因此它可以显示在我的网站上,向用户显示总的Open记录:将SQL计数结果存储到一个变量VB

SELECT COUNT (recordID) FROM [tbl_Records] WHERE [Status] = 'Open' 

任何帮助表示赞赏。

+0

如何你想这么远吗?你应该创建一个SqlCommand并且调用executeScalar ... –

+0

strQuery2 =“SELECT COUNT(*)FROM [tbl_Records] WHERE [Status] ='Open'” oRs2 =新的DbConn(strQuery2,“记录”) –

+0

我还没有使用过executeScalar之前,所以不知道如何使用它...现在看这个 –

回答

4

试试这个:

Public Function GetOpenRecordCount(ByVal connString As String) As Integer 
    Dim RecordCount As Int32 = 0 
    Dim sql As String = "SELECT COUNT (recordID) FROM [tbl_Records] WHERE [Status] = 'Open'" 

    Using conn As New SqlConnection(connString) 
     Dim cmd As New SqlCommand(sql, conn) 
     Try 
      conn.Open() 
      RecordCount = Convert.ToInt32(cmd.ExecuteScalar()) 
     Catch ex As Exception 
      Console.WriteLine(ex.Message) 
     End Try 
    End Using 

    Return RecordCount 
End Function 
+0

正是我需要的非常感谢这! –

3

利用:SqlCommand.ExecuteScalar Method

Dim connetionString As String = Nothing 
Dim cnn As SqlConnection 
Dim cmd As SqlCommand 
Dim sql As String = Nothing 

connetionString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password" 
sql = "Select Count(*) from product" 

cnn = New SqlConnection(connetionString) 
Try 
    cnn.Open() 
    cmd = New SqlCommand(sql, cnn) 
    Dim count As Int32 = Convert.ToInt32(cmd.ExecuteScalar()) 
    cmd.Dispose() 
    cnn.Close() 
    MessageBox.Show(" No. of Rows " & count) 
Catch ex As Exception 
    MessageBox.Show("Can not open connection ! ") 
End Try 
相关问题