Hello
is there a variable that is available to me that contains the number
of rows contained in a dataset return from a database call?
have a class that runs a stored proc and returns a dataset/resultset
looking to simply assign an integer this value if it is possible
i'm using (learning) vb.net and sql server
thanks in advance
If you are using a dataset, you can get the number of rows with this syntax:DataSet1.tables(0).rows.count (assuming your Dataset returns only 1 resultset. If you have more than 1, just replace the zero with whatever index you need.)
If you use a DataReader, which tends to be faster, this property is not available, unfortunately.|||
hello. thank you for the reply. that is exactly what i was looking for (DataSet1.tables(0).rows.count). a question about how to reference this from the codebehind...
i have a codebehind that Dims a class, the class returns the dataset, in the codebehind i have a line likeDropDownList1.DataSource = myClass.function1(parm1) to populate the dropdown with the data from the dataset. i get how i could reference this value in the class code, but how would i reference it in the codebehind? is there a way. would i have to do it in the class function and store it in a session variable or something? would be like to reference it directly in the codebehind as that is where i would be using the value.
thanks again.
|||i believe i have figured my question out (yup, i'm new), but if you have any comments i'd appreciate it
instead of directly coding the line as DDL1.DataSource = myClass.function1(parm1)
i modified the code to have...
Dim ds as dataSet = myClass.function1(parm1)
Dim dsCnt as integer = ds.Tables(0).Rows.Count()
DDL1.DataSource = ds
this seemed to get me what i was after. if there is a more efficient or elegant way to do this, i'm all ears
|||The way you've done it is fine. An alternative is to create a property of type dataset in your class, then fill that property in your function. The code behind could then reference your property.
Public Class myClass
Private mMyDataset as dataset
Public Sub New()
MyBase.new()
End Sub
Property MyDataset() As dataset
Get
Return mMyDataset
End Get
Set(ByVal Value As dataset)
mMyDataset = Value
End Set
End Property
Public Sub function1(param) 'can change to a sub since you are filling a property rather than using a return value
myDataset = Database call goes here
End Sub
From your code behind:
dim objClass as new myClass()
with objClass
.function1(param)
DDL1.datasource = .myDataset
DDL1.databind
end with
No comments:
Post a Comment