PDA

View Full Version : رشته تقاضا برای یک جستجو!



Webamator
چهارشنبه 14 آذر 1386, 14:50 عصر
سلام دوستان...
عکس ضمیمه رو نگاه کنید!
قراره در صورت فشردن دکمه "جستجو" بر اساس فیلدهای :
مبدا،مقصد،روز،تاریخ وساعت حرکت در دیتا بیس جستجو صورت گرفته و نتیجه در GridView پائین صفحه نمایش داده شه.
یعنی اگه همه این فیلدها پر بودن با هم And شن.اگه یکیشون پر بود بر اساس همون یکی جستجو شه اگه دوتا و الی آخر...
حالا دستور Sql شون رو چجوری بنویسم.
البته اگه نخوام همه فیلدها رو چک کنم و کلی If و String از خودم دربیارم!

hassan razavi
چهارشنبه 14 آذر 1386, 15:07 عصر
می تونید از like استفاده کنید. اینجوری اگه هر کدام از فیلداتون خالی بود همه رو درنظر میگیره
یچیزی تو این مایه ها . کوتیشن هاش و خودتون رعایت کنید


where Field1 like * + Textt1.Text + and Field2 like * + Text2.text , ...

Webamator
جمعه 16 آذر 1386, 14:19 عصر
ممنون...
مشکلم به شکلی حل شد.
حالا یه سئوال دیگه.
من تاریخ رو بصورت فارسی ساده (15/9/1386) ذخیره میکنم.حالا چجوری تو دیتا بیس تاریخ رو سرچ کنم.
مثلا فرض کنید میخوام از یک بازه زمانی خاص گزارش گیری کنم.

hassan razavi
جمعه 16 آذر 1386, 19:29 عصر
اگه بصورت String ذخیره کردید باید حتما بصورت 12 کاراکتری کامل مثلا 09/02/1386 ذخیره کنید تا برای در نظر گرفتن بازه زمانی بصورت معمولی
Where datw > 1386/01/01 and Date < 1386/12/06 مشکلی پیش نیاد .
ولی اگه بصورت 12/9/1386 در نظر بگیرید اشتباه میشه چون در اینصورت تاریخ 25/11/1386 کوچکتر از 12/9/1386 میشه.

Webamator
جمعه 16 آذر 1386, 21:41 عصر
دقیقا مشکل همین جاست از یک DLL استفاده می کنم که خروجیش 1386/9/15 هست.
حالا به این شکل چجوری میشه جواب گرفت.البته میشه سال و ماه و روز رو جدا کرد و بعد دستکاریش کرد تا به شکل دلخواه شه.ولی راه دیگه ای نیست!

hassan razavi
جمعه 16 آذر 1386, 21:48 عصر
حتما همینکار رو بکنید و تاریخ رو به صورت کامل تبدیل کنید و ذخیره کنید. چون با این فرمتی که استفاده میکنید نمیتونید برای انتخاب بازه استفاده کنید

choobin84
جمعه 16 آذر 1386, 22:57 عصر
می تونید از like استفاده کنید. اینجوری اگه هر کدام از فیلداتون خالی بود همه رو درنظر میگیره
یچیزی تو این مایه ها . کوتیشن هاش و خودتون رعایت کنید


where Field1 like * + Textt1.Text + and Field2 like * + Text2.text , ...

دوست من، این چیزی که شما نوشتی مشکل دوستمون رو حل نمی کنه، در کلاز where لازم هست که تمام تکست باکس ها بررسی بشن که null نباشند. اگر دستور جستجو رو با چیزی که شما گفتید بنویسیم ، میاد تمام رکوردهایی رو پیدا میکنه که فیلد اول برابر تکست باکس اول، فیلد دوم برابر تکستک بکس دوم و الی اخر رو بررسی میکنه و ممکنه که هیچ رکورد اون شرط رو نداشته باشه. برای مثال یکی از تکست باکس ها رو که خالی بگذارید ، این اتفاق میافته .
کد زیر بررسی میکنه که کدوم تکست باکس خالیه، بعد براساس همون میاد فیلد مربوطه رو میگذاره و And میکنه و در نهایت and یا where انتهایی رو برمیداره.

string str="select * from table where ";
if(textBox1.text!="")
str+="field1='"+textBox1.text+"' and ";
if(textBox2.text!="")
str+="field2='"+textBox2.text+"' and ";
.
.
.
if(str=="select * from table where")
str="select * from table";
else
str=str.Remove(str.lengthe-4,4);

در اینجا دستور select انتخابی با هر تکست باکس درست می شود

rohullah
شنبه 17 آذر 1386, 11:03 صبح
به نظر من که کد آقای رضوی به غیر از اون کوتیشنها که نذاشتن درسته. چون عملگر جلوی عملگر like وقتی textbox خالی باشه * باعث میشه که همه چی به عنوان جواب در نظر گرفته بشه یعنی شرط مساوی با همه چی میشه.حالا این کجاش مشکل داره من نمیدونم. اگر ممکنه یه خورده توضیح بدین تا منم برام روشن شه.

سار
شنبه 17 آذر 1386, 11:34 صبح
از من می شنوید تاریخ رو به شکل میلادی ذخیره کنید.

Webamator
شنبه 17 آذر 1386, 16:30 عصر
سلام دوستان...مشکل اولم با ایده از روش پیشنهادی آقای رضوی حل شد.
از من می شنوید تاریخ رو به شکل میلادی ذخیره کنید.

منظورتون اینه که لاتین ذخیره کنم.وقتی خواستم نمایش بدم تبدیل کنم به فارسی!اینجوری که کلی در دسر میشه.خصوصا اینکه از تاریخ زیاد استفاده میکنم.

sinpin
یک شنبه 18 آذر 1386, 08:14 صبح
منظورتون اینه که لاتین ذخیره کنم.وقتی خواستم نمایش بدم تبدیل کنم به فارسی!اینجوری که کلی در دسر میشه.خصوصا اینکه از تاریخ زیاد استفاده میکنم.

بنظر من اگه تعداد رکوردهاتون زیاد نیست به هر دو شکل تاریخ رو توی دیتابیس ذخیره کنید. فکر میکنم مزایای اینکار بشرط پایین بودن تعداد رکوردها از معایبش بیشتر باشه.

mr_moghimkhani
یک شنبه 18 آذر 1386, 10:35 صبح
شما از چه dll ای استفاده میکنید؟
dllهایی که من تاحالا دیده ام خودشان هنگام تبدیل به string قابلیت تعیین فرمت داشته اند.شبیه زیر :

*.tostring("yyyy/mm/dd") اینطوری مشکلتون حله.

ir_programmer
یک شنبه 18 آذر 1386, 10:47 صبح
از این ماژول استفاده کن و خودتو راحت کن.

Module ConvertDate
Function dayofweek(ByVal tmpdate As String) As Integer
Dim defrence As Long
Dim tmpday As Integer
tmpdate = "13" + tmpdate
If tmpdate >= "1375/01/04" Then
defrence = SSub(tmpdate, "1375/01/04")
If (defrence Mod 7) = 0 Then
dayofweek = 7
Else
dayofweek = (defrence Mod 7)
End If
Else
defrence = SSub(tmpdate, "1375/01/04") - 1
If (defrence Mod 7) = 0 Then
dayofweek = 1
Else
dayofweek = 7 - (defrence Mod 7) + 1
End If
End If
End Function

Function MDaysNo(ByVal tmpMonth As Integer, ByVal IsKab As Integer) As Integer
MDaysNo = 0
Select Case tmpMonth
Case 1, 3, 5, 7, 8, 12, 10
MDaysNo = 31
Case 4, 6, 9, 11
MDaysNo = 30
Case 2
If IsKab Then
MDaysNo = 29
Else
MDaysNo = 28
End If
End Select
End Function

Function mi2sh(ByVal tmpdate As Object, ByVal R8orV6 As Boolean) As String
Dim basedate As Object
Dim basefdate As String
Dim DIFDAYS As Object
Dim realdate As String
basedate = (#3/20/1996#)
basefdate = "1375/01/01"
' DIFDAYS = MSubDate(tmpdate, basedate)
'Debug.Print DIFDAYS

DIFDAYS = DateDiff(DateInterval.Day, basedate, tmpdate)
'DIFDAYS = tmpdate - basedate

If R8orV6 = True Then
realdate = Strings.Right(SAddToDate(Strings.Right(basefdate, 8), DIFDAYS), 8)
mi2sh = Mid(realdate, 1, 2) + Mid(realdate, 4, 2) + Mid(realdate, 7, 2)
Else
mi2sh = Strings.Right(SAddToDate(Strings.Right(basefdate, 8), DIFDAYS), 8)
End If

End Function

Function MIsKabiseh(ByVal tmpYear As Integer) As Integer
MIsKabiseh = 0
If ((tmpYear Mod 4) = 0 And (tmpYear Mod 100) <> 0) Or (tmpYear Mod 400) = 0 Then
MIsKabiseh = -1
End If
End Function

Function MonNoToStr(ByVal monno As Integer) As String
MonNoToStr = ""
Select Case monno
Case 1
MonNoToStr = "فروردین"
Case 2
MonNoToStr = "اردیبهشت"
Case 3
MonNoToStr = "خرداد"
Case 4
MonNoToStr = "تیر"
Case 5
MonNoToStr = "مرداد"
Case 6
MonNoToStr = "شهریور"
Case 7
MonNoToStr = "مهر"
Case 8
MonNoToStr = "آبان"
Case 9
MonNoToStr = "آذر"
Case 10
MonNoToStr = "دی"
Case 11
MonNoToStr = "بهمن"
Case 12
MonNoToStr = "اسفند"
End Select
End Function

Function MonStrToNo(ByVal monthstr As String) As Integer
MonStrToNo = 0
Select Case Trim(monthstr)
Case "فروردین"
MonStrToNo = 1
Case "اردیبهشت"
MonStrToNo = 2
Case "خرداد"
MonStrToNo = 3
Case "تیر"
MonStrToNo = 4
Case "مرداد"
MonStrToNo = 5
Case "شهریور"
MonStrToNo = 6
Case "مهر"
MonStrToNo = 7
Case "آبان"
MonStrToNo = 8
Case "آذر"
MonStrToNo = 9
Case "دی"
MonStrToNo = 10
Case "بهمن"
MonStrToNo = 11
Case "اسفند"
MonStrToNo = 12
End Select
End Function

Function MSubDate1(ByVal date1 As Object, ByVal date2 As Object) As Long
Const COUNTORDIF As Integer = 0 'FOR COUNT = 1 AND FOR DIF = 0
Dim DAYSIGN As Integer
Dim i, M1, M2, D1, D2, Y1, Y2 As Integer
Dim DSUP, DS, DSDOWN As Long
Dim tmpdate As Object
'------------ swap dates ------------
DAYSIGN = 1
If date1 < date2 Then
tmpdate = date1
date1 = date2
date2 = tmpdate
DAYSIGN = -1
End If
'------------ Separate DAtes -------------------
M1 = Month(date1)
M2 = Month(date2)

'D1 = Day(date1)
'D2 = Day(date2)
Y1 = Year(date1)
Y2 = Year(date2)
'------------ Besmel -------------
'------------- هر دو تاریخ برای یک سال باشند
If Y1 = Y2 Then
If M1 = M2 Then
DSDOWN = D1 - D2 + COUNTORDIF
DSUP = 0
Else
DSDOWN = MDaysNo(M2, MIsKabiseh(Y2)) - D2 + COUNTORDIF
DSUP = D1
End If
DS = 0
For i = M2 + 1 To M1 - 1
DS = DS + MDaysNo(i, MIsKabiseh(Y2))
Next i
MSubDate1 = (DSDOWN + DS + DSUP) * DAYSIGN
Exit Function
End If
'------------- تاریخها برای سالهای متفاوت باشند
DSDOWN = MDaysNo(M2, MIsKabiseh(Y2)) - D2 + COUNTORDIF
For i = M2 + 1 To 12
DSDOWN = DSDOWN + MDaysNo(i, MIsKabiseh(Y2))
Next i
DSUP = D1
For i = 1 To M1 - 1
DSUP = DSUP + MDaysNo(i, MIsKabiseh(Y1))
Next i
DS = 0
For i = Y2 + 1 To Y1 - 1
If MIsKabiseh(i) Then
DS = DS + 366
Else
DS = DS + 365
End If
Next i
MSubDate1 = (DSDOWN + DS + DSUP) * DAYSIGN
End Function

Function SAddToDate(ByVal adate As String, ByVal addrate As Long) As String
Dim TYEAR As Integer
Dim TMON As Integer, tmon2 As Integer
Dim TDAY As Integer
Dim TI As Integer
Dim DAYSN As Long
Dim AddToDate As String
AddToDate = ""
adate = "13" & adate
TYEAR = SYear(adate)
TMON = SMonth(adate)
TDAY = Sday(adate)
DAYSN = Math.Abs(addrate)
Select Case addrate
'--------------- مقدار اضافه شده به تاریخ صفر است
Case Is = 0
SAddToDate = adate
'--------------- مقدار اضافه شده به تاریخ مثبت است
Case Is > 0
If DAYSN > (SDaysNo(TMON, siskabiseh(TYEAR)) - TDAY) Then
DAYSN = DAYSN - SDaysNo(TMON, siskabiseh(TYEAR)) + TDAY
TMON = TMON + 1
Else
TDAY = TDAY + DAYSN
SAddToDate = Strings.Right(Format(TYEAR, "0000"), 2) & "/" & Format(TMON, "00") & "/" & Format(TDAY, "00")
Exit Function
End If
Do While DAYSN > SDaysNo(TMON, siskabiseh(TYEAR)) And TMON <= 12
DAYSN = DAYSN - SDaysNo(TMON, siskabiseh(TYEAR))
TMON = TMON + 1
Loop
If TMON > 12 Then
TYEAR = TYEAR + 1
Else
TDAY = DAYSN
SAddToDate = Strings.Right(Format(TYEAR, "0000"), 2) & "/" & Format(TMON, "00") & "/" & Format(TDAY, "00")
Exit Function
End If
Do While DAYSN > SYearDaysNo(TYEAR)
DAYSN = DAYSN - SYearDaysNo(TYEAR)
TYEAR = TYEAR + 1
Loop
'If DAYSN = 0 Then
' DAYSN = 1
'End If
TI = 1
Do While DAYSN > SDaysNo(TI, siskabiseh(TYEAR))
DAYSN = DAYSN - SDaysNo(TI, siskabiseh(TYEAR))
TI = TI + 1
Loop
If DAYSN = 0 Then
DAYSN = 1
End If
SAddToDate = Strings.Right(Format(TYEAR, "0000"), 2) & "/" & Format(TI, "00") & "/" & Format(DAYSN, "00")
'--------------- مقدار اضافه شده به تاریخ منفی است
Case Is < 0
If DAYSN >= TDAY Then
DAYSN = DAYSN - TDAY
TMON = TMON - 1
Else
TDAY = TDAY - DAYSN
SAddToDate = Strings.Right(Format(TYEAR, "0000"), 2) & "/" & Format(TMON, "00") & "/" & Format(TDAY, "00")
Exit Function
End If
Do While DAYSN >= SDaysNo(TMON, siskabiseh(TYEAR)) And TMON >= 1
DAYSN = DAYSN - SDaysNo(TMON, siskabiseh(TYEAR))
TMON = TMON - 1
Loop
If TMON < 1 Then
TYEAR = TYEAR - 1
Else
TDAY = SDaysNo(TMON, siskabiseh(TYEAR)) - DAYSN
SAddToDate = Strings.Right(Format(TYEAR, "0000"), 2) & "/" & Format(TMON, "00") & "/" & Format(TDAY, "00")
Exit Function
End If
Do While DAYSN >= SYearDaysNo(TYEAR)
DAYSN = DAYSN - SYearDaysNo(TYEAR)
TYEAR = TYEAR - 1
Loop
TI = 12
Do While DAYSN >= SDaysNo(TI, siskabiseh(TYEAR))
DAYSN = DAYSN - SDaysNo(TI, siskabiseh(TYEAR))
TI = TI - 1
Loop
'If DAYSN = 0 Then
' DAYSN = SDaysNo(TI, siskabiseh(TYEAR))
'End If
TDAY = SDaysNo(TI, siskabiseh(TYEAR)) - DAYSN
TMON = TI
SAddToDate = Strings.Right(Format(TYEAR, "0000"), 2) & "/" & Format(TMON, "00") & "/" & Format(TDAY, "00")
End Select
End Function

Function Sday(ByVal adate As String) As Integer
Sday = Val(Strings.Right(adate, 2))
End Function

Function sdayname(ByVal wdayno As Integer) As String
sdayname = ""
Select Case wdayno
Case 0
sdayname = "جمعه"
Case 1
sdayname = "شنبه"
Case 2
sdayname = "یکشنبه"
Case 3
sdayname = "دوشنبه"
Case 4
sdayname = "سه شنبه"
Case 5
sdayname = "چهار شنبه"
Case 6
sdayname = "پنجشنبه"
Case 7
sdayname = "جمعه"
End Select

End Function

Function SDayOFWeek(ByVal tmpdate As String) As Integer
Dim defrence As Long
'Dim tmpday As Integer
If tmpdate >= "1375/01/04" Then
defrence = SSub(tmpdate, "1375/01/04")
If (defrence Mod 7) = 0 Then
SDayOFWeek = 7
Else
SDayOFWeek = (defrence Mod 7)
End If
Else
defrence = SSub(tmpdate, "1375/01/04") - 1
If (defrence Mod 7) = 0 Then
SDayOFWeek = 1
Else
SDayOFWeek = 7 - (defrence Mod 7) + 1
End If
End If
End Function

Function SDaysNo(ByVal tmpMonth As Integer, ByVal IsKab As Integer) As Integer
SDaysNo = 0
Select Case tmpMonth
Case 12
If IsKab Then
SDaysNo = 30
Else
SDaysNo = 29
End If
Case 7 To 11
SDaysNo = 30
Case 1 To 6
SDaysNo = 31
End Select
End Function

Function SGetDayStr(ByVal adate As Object) As String
SGetDayStr = sdayname(SDayOFWeek(mi2sh(adate, False)))
End Function

Function siskabiseh(ByVal tmpYear As Integer) As Integer
siskabiseh = 0
Dim tmpval As Long
tmpval = tmpYear
If (((tmpval + 38) * 31) Mod 128) <= 30 Then
siskabiseh = -1
End If
End Function

Function SMonth(ByVal adate As String) As Long
SMonth = Val(Mid(adate, 6, 2))
End Function

Function SSub(ByVal date1 As String, ByVal date2 As String) As Long
Dim alldays As Long
Dim i As Integer
Dim year1 As Integer
Dim year2 As Integer
Dim month1 As Integer
Dim month2 As Integer
Dim days1 As Integer
Dim days2 As Integer
Dim tmps As String
SSub = 0
If date1 < date2 Then
tmps = date2
date2 = date1
date1 = tmps
End If
alldays = 0
year1 = Val(Strings.Left(date1, 4))
year2 = Val(Strings.Left(date2, 4))
month1 = Val(Mid(date1, 6, 2))
month2 = Val(Mid(date2, 6, 2))
days1 = Val(Strings.Right(date1, 2))
days2 = Val(Strings.Right(date2, 2))
If year1 = year2 Then
For i = month2 + 1 To month1 - 1
alldays = alldays + SDaysNo(i, siskabiseh(year1))
Next i
If month1 <> month2 Then
alldays = alldays + days1
alldays = alldays + SDaysNo(month2, siskabiseh(year2)) - days2 + 1
Else
alldays = Math.Abs(days1 - days2) + 1
End If
SSub = alldays
Exit Function
End If
For i = year2 + 1 To year1 - 1
If siskabiseh(i) Then
alldays = alldays + 366
Else
alldays = alldays + 365
End If
Next i
For i = 1 To month1 - 1
alldays = alldays + SDaysNo(i, siskabiseh(year1))
Next i
For i = month2 + 1 To 12
alldays = alldays + SDaysNo(i, siskabiseh(year2))
Next i

alldays = alldays + days1
alldays = alldays + SDaysNo(month2, siskabiseh(year2)) - days2 + 1
SSub = alldays
End Function

Function SXAddToDate(ByVal adate As String, ByVal addrate As Long) As String
Dim TYEAR As Integer
Dim TMON As Integer, tmon2 As Integer
Dim TDAY As Integer
Dim TI As Integer
Dim DAYSN As Long
SXAddToDate = ""
TYEAR = SYear(adate)
TMON = SMonth(adate)
TDAY = Sday(adate)
DAYSN = Math.Abs(addrate)
Select Case addrate
'--------------- مقدار اضافه شده به تاریخ صفر است
Case Is = 0
SXAddToDate = adate
'--------------- مقدار اضافه شده به تاریخ مثبت است
Case Is > 0
If DAYSN > (SDaysNo(TMON, siskabiseh(TYEAR)) - TDAY) Then
DAYSN = DAYSN - SDaysNo(TMON, siskabiseh(TYEAR)) + TDAY
TMON = TMON + 1
Else
TDAY = TDAY + DAYSN
SXAddToDate = Format(TYEAR, "0000") & "/" & Format(TMON, "00") & "/" & Format(TDAY, "00")
Exit Function
End If
Do While DAYSN > SDaysNo(TMON, siskabiseh(TYEAR)) And TMON <= 12
DAYSN = DAYSN - SDaysNo(TMON, siskabiseh(TYEAR))
TMON = TMON + 1
Loop
If TMON > 12 Then
TYEAR = TYEAR + 1
Else
TDAY = DAYSN
SXAddToDate = Format(TYEAR, "0000") & "/" & Format(TMON, "00") & "/" & Format(TDAY, "00")
Exit Function
End If
Do While DAYSN > SYearDaysNo(TYEAR)
DAYSN = DAYSN - SYearDaysNo(TYEAR)
TYEAR = TYEAR + 1
Loop
'If DAYSN = 0 Then
' DAYSN = 1
'End If
TI = 1
Do While DAYSN > SDaysNo(TI, siskabiseh(TYEAR))
DAYSN = DAYSN - SDaysNo(TI, siskabiseh(TYEAR))
TI = TI + 1
Loop
If DAYSN = 0 Then
DAYSN = 1
End If
SXAddToDate = Format(TYEAR, "0000") & "/" & Format(TI, "00") & "/" & Format(DAYSN, "00")
'--------------- مقدار اضافه شده به تاریخ منفی است
Case Is < 0
If DAYSN >= TDAY Then
DAYSN = DAYSN - TDAY
TMON = TMON - 1
Else
TDAY = TDAY - DAYSN
SXAddToDate = Format(TYEAR, "0000") & "/" & Format(TMON, "00") & "/" & Format(TDAY, "00")
Exit Function
End If
Do While DAYSN >= SDaysNo(TMON, siskabiseh(TYEAR)) And TMON >= 1
DAYSN = DAYSN - SDaysNo(TMON, siskabiseh(TYEAR))
TMON = TMON - 1
Loop
If TMON < 1 Then
TYEAR = TYEAR - 1
Else
TDAY = SDaysNo(TMON, siskabiseh(TYEAR)) - DAYSN
SXAddToDate = Format(TYEAR, "0000") & "/" & Format(TMON, "00") & "/" & Format(TDAY, "00")
Exit Function
End If
Do While DAYSN >= SYearDaysNo(TYEAR)
DAYSN = DAYSN - SYearDaysNo(TYEAR)
TYEAR = TYEAR - 1
Loop
TI = 12
Do While DAYSN >= SDaysNo(TI, siskabiseh(TYEAR))
DAYSN = DAYSN - SDaysNo(TI, siskabiseh(TYEAR))
TI = TI - 1
Loop
'If DAYSN = 0 Then
' DAYSN = SDaysNo(TI, siskabiseh(TYEAR))
'End If
TDAY = SDaysNo(TI, siskabiseh(TYEAR)) - DAYSN
TMON = TI
SXAddToDate = Format(TYEAR, "0000") & "/" & Format(TMON, "00") & "/" & Format(TDAY, "00")
End Select
End Function


Function SYear(ByVal adate As String) As Integer
SYear = Val(Strings.Left(adate, 4))
End Function

Function SYearDaysNo(ByVal TYEAR As Integer) As Integer
If siskabiseh(TYEAR) Then
SYearDaysNo = 366
Else
SYearDaysNo = 365
End If
End Function
Function MiladiToShamsi(ByVal tmpdate As Object, ByVal R8orV6 As Boolean) As String
Dim StrDate As String

StrDate = mi2sh(tmpdate, R8orV6)
'Return StrDate
Return StrDate.Substring(0, 2) + "/" + StrDate.Substring(3, 2) + "/" + StrDate.Substring(6, 2)

End Function

Function ShowDateNow() As String
Dim StrDate As String

StrDate = mi2sh(Now.Date, False)
'Return StrDate
Return StrDate.Substring(0, 2) + "/" + StrDate.Substring(3, 2) + "/" + StrDate.Substring(6, 2)

End Function

Function ShowTimeNow() As String

Dim nHour, nMinute As String

nHour = Now.Hour.ToString
If Len(nHour) = 1 Then
nHour = "0" + nHour
End If
nMinute = Now.Minute.ToString
If Len(nMinute) = 1 Then
nMinute = "0" + nMinute
End If

Return nHour + ":" + nMinute

End Function

End Module

choobin84
چهارشنبه 21 آذر 1386, 22:50 عصر
به نظر من که کد آقای رضوی به غیر از اون کوتیشنها که نذاشتن درسته. چون عملگر جلوی عملگر like وقتی textbox خالی باشه * باعث میشه که همه چی به عنوان جواب در نظر گرفته بشه یعنی شرط مساوی با همه چی میشه.حالا این کجاش مشکل داره من نمیدونم. اگر ممکنه یه خورده توضیح بدین تا منم برام روشن شه.
این دستور رو ببینید:

select * from tb_hesabha where id like '*"+textBox1.Text+"*' and name like '*"+textBox2.Text+"*'"

خوب من میخام دستور به گونه ای باشه اگر textBox2 خالیه، توی عبارت جستجو نیاد و همینطور برای textBox1.
با اینکه تعداد زیادی رکورد توی جدول دارم اگر هر کدوم از تکست باکس ها خالی باشه، هیچ رکوردی select نمیشه.

newgoldenman
جمعه 23 آذر 1386, 12:34 عصر
خوب من میخام دستور به گونه ای باشه اگر textBox2 خالیه، توی عبارت جستجو نیاد و همینطور برای textBox1.
با اینکه تعداد زیادی رکورد توی جدول دارم اگر هر کدوم از تکست باکس ها خالی باشه، هیچ رکوردی select نمیشه.به نظر من جواب این سوالتون رو توی پست شماره ی 7# گرفتین مگه نه؟!

choobin84
جمعه 23 آذر 1386, 18:19 عصر
به نظر من جواب این سوالتون رو توی پست شماره ی 7# گرفتین مگه نه؟!
بعد از اون پست شما ، من فکر کردم اشتباه می کنم و یا چیز جدیدی هست که من بلد نبوده ام.
اما این نمونه برنامه که با اون کد آقای رضوی جواب نمیده. فکر می کنید کد رو اشتباه نوشتم یا شما اشتباه می کنید؟