سلام به همه عزیزان و اساتید و سلاطین دیتابیس (( اصلا منظورم استاد اسکندی نبود ))
من یک سورس سمپل برای جستجو در دیتابیس تهیه کردم که به خوبی کار میکنه و عزیزان مبتدی هم میتونند استفاده کنند
ولی در این سمپل قصد دارم
بعد از سرچ کلمه " علی " در ستونی از جدول tbl1 که اسمش jomle هست بیام همه رو لیست ویو نمایش بدم ولی مرتب شده
خوبدستوراتی داریم برای مرتب کردن cursor ها در مبحث دیتابیس که به ترتیب حروف الفبا و به ترتیب حروف الفبا از آخر به اول مرتب میکنه که شبیه به این هست
SELECT * FROM tbl ORDER BY id ASC|DESC
ولی من قصد ندارم براساس حروف الفبا مرتب کنم
بلکه قصد دارم برحسب
اولویت مکانی (( کلمه سرچ شده = علی)) در جمله مرتب کنم
با ذکر مثال براتون شرح میدم
ما اومدیم و در یک دیتابیس 100 سطری که در اسمش database.db هست
در جدولی به اسم tbl2
در ستونی به اسم jomle
دنبال جملاتی گشتیم که داخلش کلمه (علی) داره
با این دستور
cur1=SQL1.ExecQuery("SELECT * FROM tbl1 WHERE jomle LIKE '%"&EditText1.Text&"%'LIMIT 40 OFFSET 0")
و حالا در این دیتابیس 39 سطر پیدا میکنه که داخلش کلمه " علی " هست.. (( داخل ادیت تکس علی تایپ شده))
ولی وقتی با دستور زیر در لیست ویو نمایش میدیم میبینم که به ترتیبی که در دیتابیس بوده نمایش میده
For i = 0 To cur1.RowCount-1
cur1.Position=i
ListView_sort.AddSingleLine(cur1.GetString("jomle"))
Next
خوب حالا می بینیم که یه لیست ویو 39 خطی داریم که داخل همه خط ها کلمه " علی " هست ولی به ترتیب نیست
یعنی یکی کلمه علی " وسطش هست "
یکی کلمه علی "آخرش هست "
یکی کلمه علی جایگاه دم هست
و ....
به اینصورت
** Service (starter) Create **
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
** Activity (main) Resume **
جستجو برای ==علی
خط 0=ررررعلیمحمد
خط 1=رررررر علی
خط 2=ررررررررررررررررررررررررررررررررررررررررررررررررررعلی
خط 3=رعلی
خط 4=علی ررررررررررر
خط 5=رررررررر علی رررررررررر
خط 6=رررررررررررررررررررررررررررررر علی
خط 7=رر علی رررر علی ررر علی
خط 8=رر علی
خط 9=رررر علی
خط 10=رررررررررررررررررررررررررررعلی
خط 11=علی رر
خط 12=ررعلی
خط 13=ر علی
خط 14=ر علی ر
خط 15=رعلی ر
خط 16=رررر علی ر
خط 17=رررر علی
خط 18=ررر علی
خط 19=ررعلی
خط 20=علی ر
خط 21=رر علی رررر
خط 22=رعلی
خط 23=رررعلی علی
خط 24=رر علی رررررررررررررررر
خط 25=رررعلی
خط 26=ررر علی ر علی رررر
خط 27=ررعلیعلی
خط 28=ررر علی رررررررر
خط 29=رررعلیعلی
خط 30=رعلیعلی
خط 31=ررر علی ر علی رر
خط 32=ررعلی علی
خط 33=ررر علی ر علی
خط 34=رعلی علی
خط 35=علی
خط 36=علی
خط 37=علی علی
خط 38=ر علی ر علی ر علی ر علی
خط 39=رعلیرعلیرعلیرعلی
خوب ما می خواهیم که مثلا خط سوم در بالا ترین مکان دیده بشه چون کلمه علی اولین کلمه در جمله هست
یا همینطور خط 35 و 26 در مکانهای دوم و سوم باشند
در واقع چه طور میتونم لیست رو به این صورت در بیارم؟
چه طور میتونیم cur های گرفته شده رو برحسب جایگاه کلمه علی مرتب کنیم و نمایش دهیم
علی
علی
علی ر
علی رر
علی ررررررررررر
رعلی
رعلی ر
ررعلی
ر علی
ر علی ر
رر علی رررر علی ررر علی
رر علی
رر علی رررر
رررعلی علی
رر علی رررررررررررررررر
رررعلی
ررررعلیمحمد
ررر علی
ررر علی ر علی رررر
رررر علی
رررر علی ر
رررررر علی
رررررررر علی رررررررررر
رررررررررررررررررررررررررررعلی
رررررررررررررررررررررررررررررر علی
ررررررررررررررررررررررررررررررررررررررررررررررررررعلی
سوال
arastooms 1,046
سلام به همه عزیزان و اساتید و سلاطین دیتابیس (( اصلا منظورم استاد اسکندی نبود ))
من یک سورس سمپل برای جستجو در دیتابیس تهیه کردم که به خوبی کار میکنه و عزیزان مبتدی هم میتونند استفاده کنند
ولی در این سمپل قصد دارم
بعد از سرچ کلمه " علی " در ستونی از جدول tbl1 که اسمش jomle هست بیام همه رو لیست ویو نمایش بدم ولی مرتب شده
خوبدستوراتی داریم برای مرتب کردن cursor ها در مبحث دیتابیس که به ترتیب حروف الفبا و به ترتیب حروف الفبا از آخر به اول مرتب میکنه که شبیه به این هست
SELECT * FROM tbl ORDER BY id ASC|DESC
ولی من قصد ندارم براساس حروف الفبا مرتب کنم
بلکه قصد دارم برحسب
اولویت مکانی (( کلمه سرچ شده = علی)) در جمله مرتب کنم
با ذکر مثال براتون شرح میدم
ما اومدیم و در یک دیتابیس 100 سطری که در اسمش database.db هست
در جدولی به اسم tbl2
در ستونی به اسم jomle
دنبال جملاتی گشتیم که داخلش کلمه (علی ) داره
با این دستور
cur1=SQL1.ExecQuery("SELECT * FROM tbl1 WHERE jomle LIKE '%"&EditText1.Text&"%'LIMIT 40 OFFSET 0")
و حالا در این دیتابیس 39 سطر پیدا میکنه که داخلش کلمه " علی " هست.. (( داخل ادیت تکس علی تایپ شده))
ولی وقتی با دستور زیر در لیست ویو نمایش میدیم میبینم که به ترتیبی که در دیتابیس بوده نمایش میده
For i = 0 To cur1.RowCount-1 cur1.Position=i ListView_sort.AddSingleLine(cur1.GetString("jomle")) Next
خوب حالا می بینیم که یه لیست ویو 39 خطی داریم که داخل همه خط ها کلمه " علی " هست ولی به ترتیب نیست
یعنی یکی کلمه علی " وسطش هست "
یکی کلمه علی "آخرش هست "
یکی کلمه علی جایگاه دم هست
و ....
به اینصورت
** Service (starter) Create ** ** Service (starter) Start ** ** Activity (main) Create, isFirst = true ** ** Activity (main) Resume ** جستجو برای ==علی خط 0=ررررعلیمحمد خط 1=رررررر علی خط 2=ررررررررررررررررررررررررررررررررررررررررررررررررررعلی خط 3=رعلی خط 4=علی ررررررررررر خط 5=رررررررر علی رررررررررر خط 6=رررررررررررررررررررررررررررررر علی خط 7=رر علی رررر علی ررر علی خط 8=رر علی خط 9=رررر علی خط 10=رررررررررررررررررررررررررررعلی خط 11=علی رر خط 12=ررعلی خط 13=ر علی خط 14=ر علی ر خط 15=رعلی ر خط 16=رررر علی ر خط 17=رررر علی خط 18=ررر علی خط 19=ررعلی خط 20=علی ر خط 21=رر علی رررر خط 22=رعلی خط 23=رررعلی علی خط 24=رر علی رررررررررررررررر خط 25=رررعلی خط 26=ررر علی ر علی رررر خط 27=ررعلیعلی خط 28=ررر علی رررررررر خط 29=رررعلیعلی خط 30=رعلیعلی خط 31=ررر علی ر علی رر خط 32=ررعلی علی خط 33=ررر علی ر علی خط 34=رعلی علی خط 35=علی خط 36=علی خط 37=علی علی خط 38=ر علی ر علی ر علی ر علی خط 39=رعلیرعلیرعلیرعلی
خوب ما می خواهیم که مثلا خط سوم در بالا ترین مکان دیده بشه چون کلمه علی اولین کلمه در جمله هست
یا همینطور خط 35 و 26 در مکانهای دوم و سوم باشند
در واقع چه طور میتونم لیست رو به این صورت در بیارم؟
چه طور میتونیم cur های گرفته شده رو برحسب جایگاه کلمه علی مرتب کنیم و نمایش دهیم
علی علی علی ر علی رر علی ررررررررررر رعلی رعلی ر ررعلی ر علی ر علی ر رر علی رررر علی ررر علی رر علی رر علی رررر رررعلی علی رر علی رررررررررررررررر رررعلی ررررعلیمحمد ررر علی ررر علی ر علی رررر رررر علی رررر علی ر رررررر علی رررررررر علی رررررررررر رررررررررررررررررررررررررررعلی رررررررررررررررررررررررررررررر علی ررررررررررررررررررررررررررررررررررررررررررررررررررعلی
با تشکر از دوستان و سلاطین دیتابیس
سورت لیست ویو.zip
لینک ارسال
به اشتراک گذاری در سایت های دیگر
8 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.