PDA

View Full Version : سوال: اعمال فیلتر بین دو تاریخ



designerspars
سه شنبه 10 اسفند 1395, 19:25 عصر
با سلام و خسته نباشید
با نرم افزار VB.Net یک برنامه ساده نوشتم که میخام بین دو تاریخ اعمال فیلتر کنم اما یک فیلد تاریخ دارم
چطور باید این کار رو انجام بدم
کد پایین رو در یک باتون جهت اعمال فیلتر می نویسم

Dim con As SqlConnection
Dim adap As SqlDataAdapter
Dim ds As New DataSet()
Dim d As String

con = New SqlConnection("Data Source=(Local);database=Koloche;Integrated Security=True")
d = "select * from Sabt where Date like '" & TxtSdate.Text & "%'"
adap = New SqlDataAdapter(d, con)
adap.Fill(ds, "Sabt")
dg1.DataSource = ds.Tables("Sabt")
con.Close()


چطور این کار رو انجام بدم که در دیتا گرید هم نمایش بده
با تشکر
خیلی ضرورییه

hrj1981
چهارشنبه 11 اسفند 1395, 01:01 صبح
select * from Sabt where Date BETWEEN N'& TEXT1 &' AND N'& TEXT2 &&'

gilsoft
چهارشنبه 11 اسفند 1395, 07:39 صبح
با سلام و خسته نباشید
با نرم افزار VB.Net یک برنامه ساده نوشتم که میخام بین دو تاریخ اعمال فیلتر کنم اما یک فیلد تاریخ دارم
چطور باید این کار رو انجام بدم
کد پایین رو در یک باتون جهت اعمال فیلتر می نویسم

Dim con As SqlConnection
Dim adap As SqlDataAdapter
Dim ds As New DataSet()
Dim d As String

con = New SqlConnection("Data Source=(Local);database=Koloche;Integrated Security=True")
d = "select * from Sabt where Date like '" & TxtSdate.Text & "%'"
adap = New SqlDataAdapter(d, con)
adap.Fill(ds, "Sabt")
dg1.DataSource = ds.Tables("Sabt")
con.Close()


چطور این کار رو انجام بدم که در دیتا گرید هم نمایش بده
با تشکر
خیلی ضرورییه

سلام دوست عزیز

ضمن تائید پست 2# و تشکر از جناب hrj1981 .. اینم کد مربوطه:


Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

Dim Str As String = "SELECT * FROM Sabt WHERE [Date] BETWEEN N'" & txtSDate.Text & "' AND N'" & txtEDate.Text & "'"
Dim Con As New SqlConnection("Data Source=(Local); Database=Koloche; Integrated Security=True")
Dim DA As New SqlDataAdapter(str, Con)
Dim DT As New DataTable()

DA.Fill(DT)
Dgv1.DataSource = DT
Con.Close()

End Sub

پیشنهاد میکنم که در نامگذاری فیلدها بیشتر دقت کنید ... مثلاً نامگذاری فیلد تاریخ .. بنام Date اشتباه میباشد .. برای اینکه تشابه اسمی با تابع Date در T-SQL دارد.

اگر هم بنا بر دلایلی مجبور به اینکار شُدید .. هنگام فراخوانی .. نام فیلد را مابین [FieldName] قرار دهید. مثال:

SELECT [Date] FROM TableName

موفق باشید .....

designerspars
شنبه 14 اسفند 1395, 00:07 صبح
با تشکر از راهنمایی شما
درست شد

اگه بخام جمع ستون هایی که در دیتاگرید دارم (یعنی هر ستون بصورت جداگانه) و با اعمال فیلتر نمایش داده میشند رو در تکست باکسی در پایین صفحه ببینم چکاری رو باید انجام بدم
نوع فیلد عدد می باشد

۱. نوع فیلد در بانک از چه نوعی باید باشه؟
۲. نحوه جمع ستون ها با چه دستوریه؟

gilsoft
شنبه 14 اسفند 1395, 00:53 صبح
با تشکر از راهنمایی شما
درست شد

اگه بخام جمع ستون هایی که در دیتاگرید دارم (یعنی هر ستون بصورت جداگانه) و با اعمال فیلتر نمایش داده میشند رو در تکست باکسی در پایین صفحه ببینم چکاری رو باید انجام بدم
نوع فیلد عدد می باشد

۱. نوع فیلد در بانک از چه نوعی باید باشه؟
۲. نحوه جمع ستون ها با چه دستوریه؟

سلام دوست عزیز

1. نوع فیلد باید از نوع عددی (محاسباتی) باشه.

2. از نمونه کد زیر ایده بگیر:
Dim Sum1 As Integer
Dim Sum2 As Integer


Using Con As New SqlConnection("Data Source=(Local); Database=Koloche; Integrated Security=True")
Dim cmd As New SqlCommand("SELECT SUM(ColumnName1) As [Sum1], SUM(ColumnName2) As [Sum2] FROM TableName", Con)
Con.Open()
Dim DR As SqlDataReader = cmd.ExecuteReader()
While DR.Read()
Sum1 = CInt(DR.GetInt32(0))
Sum2 = CInt(DR.GetInt32(1))
End While
DR.Close()
End Using


txtSum1.Text = CStr(Sum1)
txtSum2.Text = CStr(Sum2)


موفق باشید .....

designerspars
چهارشنبه 18 اسفند 1395, 19:03 عصر
با سلام و تشکر مجدد
با چنیدین روز تلاش مجدانه خدا رو شکر درست شد.

بسیار متشکرم از راهنمایی شما