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

سرچ در دیتابیس در آی دی های مشخص


mahfelsoft

سوال

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

	cur = Bank.ExecQuery("SELECT * FROM tbl  WHERE  fehrest LIKE '%"&edit.Text&"%'" )

حالا توی این ستونی که دارم سرچ میکنم چند هزار رکورد هست .

حالا من با کلیک روی آیتم های فهرستم توی صفحه اول برنامه توی صفحه بعد یه تعدادی از این رکوردها رو لود میکنم . مثلا با کلیک روی آیتم اول فهرستم رکوردهای 1 تا 10 رو میارم . با کلیک روی آیتم دوم فهرستم 20 تا بعدی رو مثلا لود میکنم . خوب که برای لود کردن  مقادیر مشخص توی لیست ویو هم از این کد استفاده میکنم

	Cr = Bank.ExecQuery("SELECT ID,fehrest FROM fehrest WHERE fasl="&Home.meghdar)
	For i = 0 To Cr.RowCount - 1
		Cr.Position = i
		List_matlab.AddSingleLine2(Cr.GetString("fehrest"),Cr.GetInt("id"))

 

 

حالا من وقتی میخوام توی هر ص سرچ انجام بدم خوب توی تمام ستون چند هزار رکوردی سرچ میکنه . میخوام ببینم چه کدی بنویسم که فقط توی همون رکورهای لود شده سرچ کنه ؟ و کل ستون رو نگرده ؟ (سرچم توی لیست ویو هست )

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

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

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

در در 1396/06/06, 12:16:34، mahfelsoft گفته است :

دوستان دیگه در این مورد نمیتونن راهنمایی کنن ؟ فکر میکنم با تغییراتی توی کد سرچ بشه انجام داد ؟ کسی میتونه کمک کنه ؟

خب بهتره نسبت به شماره ستون id اونو محدود کنید. شما شماره پایین ترین id دریافت شده و بزرگترین اونو درنظر بگیرید و در قسمت where محدودیت رو اعمال کنید.

SELECT * FROM tbl  WHERE id>="&minId&" And id<="&maxId&" And  fehrest LIKE '%"&edit.Text&"%'"

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

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

در 2 ساعت قبل، امین مهدی نژاد گفته است :

خب بهتره نسبت به شماره ستون id اونو محدود کنید. شما شماره پایین ترین id دریافت شده و بزرگترین اونو درنظر بگیرید و در قسمت where محدودیت رو اعمال کنید.


SELECT * FROM tbl  WHERE id>="&minId&" And id<="&maxId&" And  fehrest LIKE '%"&edit.Text&"%'"

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

این دوتا رو چطوری بدست بیارم ؟

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

در 2 دقیقه قبل، mahfelsoft گفته است :

این دوتا رو چطوری بدست بیارم ؟


maxId

minId

داخل خود For اول قرار دادین. یعنی کد زیر که در سوالتون بود

For i = 0 To Cr.RowCount - 1
		Cr.Position = i
		List_matlab.AddSingleLine2(Cr.GetString("fehrest"),Cr.GetInt("id"))

در اینجا پایین ترین و بالا ترین id رو در بین Cr.GetInt("id") پیدا کنید.به راحتی با دو تا if میشه اونوها رو بدست بیارید

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

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

در 4 دقیقه قبل، امین مهدی نژاد گفته است :

داخل خود For اول قرار دادین. یعنی کد زیر که در سوالتون بود


For i = 0 To Cr.RowCount - 1
		Cr.Position = i
		List_matlab.AddSingleLine2(Cr.GetString("fehrest"),Cr.GetInt("id"))

در اینجا پایین ترین و بالا ترین id رو در بین Cr.GetInt("id") پیدا کنید.به راحتی با دو تا if میشه اونوها رو بدست بیارید

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

ممنون که جواب میدید اما میشه دقیق تر بگید . الان راستش متوجه نمیشم درست . چطوری بدست بیارم ؟ ممنون میشم راهنمایی کنید

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

در 19 دقیقه قبل، mahfelsoft گفته است :

ممنون که جواب میدید اما میشه دقیق تر بگید . الان راستش متوجه نمیشم درست . چطوری بدست بیارم ؟ ممنون میشم راهنمایی کنید

Dim maxId As Int=0
Dim minId As Int=0
....

For i = 0 To Cr.RowCount - 1
  	Cr.Position = i
  
	Dim id As Int=Cr.GetInt("id")
	if i>maxId Then maxId =i
	if i<minId Then minId =i
	List_matlab.AddSingleLine2(Cr.GetString("fehrest"),id)

دو تا متغیر رو در قسمت گلوبال معرفی کنید.

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

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

در 10 دقیقه قبل، امین مهدی نژاد گفته است :

Dim maxId As Int=0
Dim minId As Int=0
....

For i = 0 To Cr.RowCount - 1
  	Cr.Position = i
  
	Dim id As Int=Cr.GetInt("id")
	if i>maxId Then maxId =i
	if i<minId Then minId =i
	List_matlab.AddSingleLine2(Cr.GetString("fehrest"),id)

دو تا متغیر رو در قسمت گلوبال معرفی کنید.

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

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

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

در 4 دقیقه قبل، mahfelsoft گفته است :

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

خب باید در نظر داشته باشید که حتما ستون id باید AUTO_INCREMENT  باشد. خیلی از افراد اینو در نظر نمی گیرند. اگه کد سرچ شما همونی باشه که در بالا گفتم.احتمالا مشکل این باشد. که اونو توسط نرم افزار های مدیریت دیتابیس تنظیم کنید.

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

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

در ۱ ساعت قبل، امین مهدی نژاد گفته است :

خب باید در نظر داشته باشید که حتما ستون id باید AUTO_INCREMENT  باشد. خیلی از افراد اینو در نظر نمی گیرند. اگه کد سرچ شما همونی باشه که در بالا گفتم.احتمالا مشکل این باشد. که اونو توسط نرم افزار های مدیریت دیتابیس تنظیم کنید.

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

بله . من همیشه توی دیتابیس روی همین حالت میزارم . الان هم روی همین حالته . اما جواب نمیده

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

بالاخره به نتیجه رسیدم یه مقداری بالا پایین کردم با این کد توی بخش سرچ تونستم حل کنم

cur = Bank.ExecQuery("SELECT * FROM fehresttafsir  WHERE fasl="&Home.meghdar&" And  fehrest LIKE '%"&edit.Text&"%'")

 

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

در 11 ساعت قبل، mahfelsoft گفته است :

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


	cur = Bank.ExecQuery("SELECT * FROM tbl  WHERE  fehrest LIKE '%"&edit.Text&"%'" )

حالا توی این ستونی که دارم سرچ میکنم چند هزار رکورد هست .

حالا من با کلیک روی آیتم های فهرستم توی صفحه اول برنامه توی صفحه بعد یه تعدادی از این رکوردها رو لود میکنم . مثلا با کلیک روی آیتم اول فهرستم رکوردهای 1 تا 10 رو میارم . با کلیک روی آیتم دوم فهرستم 20 تا بعدی رو مثلا لود میکنم . خوب که برای لود کردن  مقادیر مشخص توی لیست ویو هم از این کد استفاده میکنم


	Cr = Bank.ExecQuery("SELECT ID,fehrest FROM fehrest WHERE fasl="&Home.meghdar)
	For i = 0 To Cr.RowCount - 1
		Cr.Position = i
		List_matlab.AddSingleLine2(Cr.GetString("fehrest"),Cr.GetInt("id"))

 

 

حالا من وقتی میخوام توی هر ص سرچ انجام بدم خوب توی تمام ستون چند هزار رکوردی سرچ میکنه . میخوام ببینم چه کدی بنویسم که فقط توی همون رکورهای لود شده سرچ کنه ؟ و کل ستون رو نگرده ؟ (سرچم توی لیست ویو هست )

سلام / بنظرم هر داده ای رو که لود میکنی بریز توی دیتابیس افلاین و با WHERE fild LIKE 'search' توی داده هات سرچ کن

 

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

دوستان دیگه در این مورد نمیتونن راهنمایی کنن ؟ فکر میکنم با تغییراتی توی کد سرچ بشه انجام داد ؟ کسی میتونه کمک کنه ؟

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

بایگانی شده

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

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

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