رفتن به مطلب
  • 0

جستجو در دیتابیس آفلاین


MR.B4A

سوال

سلام به همه

من با استفاده از این دستورات داخل دیتابیس سرچ میکنم

Private Sub lst_items_ItemClick (Position As Int, Value As Object)
	cur_items=sql.ExecQuery2("SELECT * FROM tbl_note WHERE title=?",Array As String(Value))
	
	For i=1 To cur_items.RowCount-1
		cur_items.Position=i 
		Msgbox(cur_items.GetString("txt"),"")
	Next
	
End Sub

اما با اینکه توی دیتابیس فیلدهایی موجوده ولی توی حلقه نمیوفته!!

ممنون میشم راهنماییم کنید چه طوری میشه مشکلو حل کنم.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

4 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

در ۱۴۰۰/۶/۱۴ در 01:40، batman123 گفته است:

سلام به همه

من با استفاده از این دستورات داخل دیتابیس سرچ میکنم

Private Sub lst_items_ItemClick (Position As Int, Value As Object)
	cur_items=sql.ExecQuery2("SELECT * FROM tbl_note WHERE title=?",Array As String(Value))
	
	For i=1 To cur_items.RowCount-1
		cur_items.Position=i 
		Msgbox(cur_items.GetString("txt"),"")
	Next
	
End Sub

اما با اینکه توی دیتابیس فیلدهایی موجوده ولی توی حلقه نمیوفته!!

ممنون میشم راهنماییم کنید چه طوری میشه مشکلو حل کنم.

سلام و درود

 

دستور title=?، میاد اونایی رو که دقیقاً عین چیز تایپ شده رو میاره. نه کم نه زیاد و برای جستوجو قابل استفاده نیست.

برای سرچ، باید از دستور زیر استفاده کنید:

cur_items=sql.ExecQuery2("SELECT * FROM tbl_note WHERE title LIKE '%?%'",Array As String(Value))

 

و البته بهتره از Log بجای MsgBox استفاده کنید...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به جای Msgbox از log استفاده کنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۶/۱۴ در ۱۲:۱۴، Salar۸۲ گفته است:

سلام و درود

 

دستور title=?، میاد اونایی رو که دقیقاً عین چیز تایپ شده رو میاره. نه کم نه زیاد و برای جستوجو قابل استفاده نیست.

برای سرچ، باید از دستور زیر استفاده کنید:

cur_items=sql.ExecQuery2("SELECT * FROM tbl_note WHERE title LIKE '%?%'",Array As String(Value))

 

و البته بهتره از Log بجای MsgBox استفاده کنید...

سلام.

خب منم میخوام عین عبارت جستجو شه. چون لیست ویو هست و قابل تغییر نیست

اما دستور شما این خطارو میده:

android.database.sqlite.SQLiteBindOrColumnIndexOutOfRangeException: bind or column index out of range: handle 0x82d7650

ممنون میشم راهنماییم کنید

برام عجیبه که همین دستور رو:

cur_items=sql.ExecQuery2("SELECT * FROM tbl_note WHERE title=?",Array As String(Value))
	
	For i=1 To cur_items.RowCount-1
		cur_items.Position=i 
		Msgbox(cur_items.GetString("txt"),"")
	Next

توی یک اکتیویتیه دیگه استفاده کردم جواب داده

نمیدونم این چشه که نمیوفته توی حلقه!!

در ۱۴۰۰/۶/۱۴ در 02:00، محمدرضا شاهپیری گفته است:

به جای Msgbox از log استفاده کنید

اصلا توی حلقه نمیوفته که بخواد دستوری رو اجرا کنه.

مشکل اینجاس

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اگر هدفتون جستوجو در لیست ویو هست، اگر اول آیتم ها رو تو لیست ویو لود کرده باشین، دیگه لازم نیست سرج رو تو دیتابیس انجام بدید و هر دفعه لودش کنید.

یه راه استاندار هست برای سرج تو خود لیست ویو.

قبلاً سورسش رو گذاشته بودم:

 

در ۱۴۰۰/۶/۱۵ در 01:16، batman123 گفته است:

توی یک اکتیویتیه دیگه استفاده کردم جواب داده

نمیدونم این چشه که نمیوفته توی حلقه!!

اگر همون کد تو یه اکتیویتی دیگه کار می‌کنه، باید بببینیم چه فرقی بین این کدها در اکتیویتی‌ها چی هست؛ تنها فرقی که من می‌بینم، متغیر Value هست که ممکنه درست مقدار دهی نشده باشه.

 

ببینید برای لیست ویو، ReturnValue رو چی گذاشتید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...