PDA

View Full Version : بدست آوردن تعداد ركورهاي برگشتي از ObjectDataSource



Mostafa_Dindar
شنبه 21 آذر 1388, 21:00 عصر
سلام
چطور ميتونم تعداد ركوردهاي برگشتي از ObjectDataSource رو بدست بيارم ؟ ميخوام در صورتي كه تعداد اون مقدار مشخصي بود متني متناسبي رو به كاربر مثلا داخل يك Lable نشون بدم .
مرسي

Saber_Fatholahi
یک شنبه 22 آذر 1388, 09:00 صبح
مسلمل شما از یه کلاس داری کدتو میگیری
خوب جنریک لیست ها یه متد بنام count() دارن

Mostafa_Dindar
یک شنبه 22 آذر 1388, 10:24 صبح
مرسي از جوابتون ولي من منظورم استفاده از رويدادهاي خود ObjectDataSource بود .
من اينطور مينويسم :
bool bGetSelectCount;
protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
bGetSelectCount = e.ExecutingSelectCount;

}
protected void ObjectDataSource1_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
if (bGetSelectCount)
lblStatus.Text = e.ReturnValue.ToString();
}

و e.ReturnValue هم تعداد ركورهاي بازگشتي رو داره ولي مشكل من اين هست هميشه e.ExecutingSelectCount مقدارش False هست .
راه ديگه اي بايد برم ؟

shocraneh
یک شنبه 22 آذر 1388, 18:38 عصر
من این کارو انجام میدم . البته فکر نکنم منظورشما این باشه
در ضمن ممنون میشم یه توضیحی راجع به ObjectDataSource1_Selecting بدین . اصلا چه استفاده هایی داره ؟ اگه این روش بهتره لطفا بگید تا منم روش کار کنم


Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim obj As New BLLproject
Dim NumRec As Int32 = obj.GetTotalOrders
end sub
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''
Public Class DAProject
Inherits DAbase
Public Function GetTotalOrders() As Int32
Dim Cnn As SqlConnection = Me.GetConnection()
Dim Cmd As New SqlCommand("count", Cnn)
Cmd.CommandType = CommandType.StoredProcedure
Dim intTotalOrders As Int32 = -1
Try
Cnn.Open()
intTotalOrders = CType(Cmd.ExecuteScalar(), Int32)
Catch ex As SqlException
Throw ex
Catch ex As Exception
Throw ex
Finally
If (Cnn.State <> ConnectionState.Closed) Then Cnn.Close()
End Try

Return intTotalOrders

End Function
end class

''''''''''''''''''''''''''''''''''''''''''''''''''
Public Class BLLproject
Public Function GetTotalOrders() As Int32
Try
Dim obj_DAProject As New DAProject
Return obj_DAProject.GetTotalOrders
Catch ex As SqlException
Throw ex
Catch ex As Exception
Throw ex
End Try
End Function
end class

Mostafa_Dindar
یک شنبه 22 آذر 1388, 20:41 عصر
مثل اينكه اشتباه ميكردم e.ReturnValue تنها در Debug Mode تعداد ركوردهاي بازيافتي (RowCount)رو داره و من نميدونم چطور ميتونم تعداد ركوردها رو بدست بيارم
حداقل به روش زير ميتونم چك كنم تعداد ركوردهاي بازگشتي صفر نباشه و چيزي به كاربر نشون بدم :

protected void ObjectDataSource1_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
if (e.ReturnValue==null)
Label1.Text = "No records were found";
}