جستجو در دیتابیس sqlite - نسخه قابل چاپ +- Parsi Coders (http://parsicoders.com) +-- انجمن: Mobile (http://parsicoders.com/forumdisplay.php?fid=56) +--- انجمن: Basic4Android (http://parsicoders.com/forumdisplay.php?fid=112) +--- موضوع: جستجو در دیتابیس sqlite (/showthread.php?tid=3497) |
جستجو در دیتابیس sqlite - mahdi72 - 03-11-2014 سلام دوستان به کمک احتیاج دارم من با کد های زیر اطلاعات دیتابیس رو در داخل لیست ویو لود میکنم، مشکل من این هست که من دیتابیسم حجمش خیلی زیاده و نمیشه اونو لود کرد.راه حلی که داره اینه که اطلاعات مورد نظر توسط کاربر جستجو بشه و فقط نتیجه جستجو لود بشه.این کارو بلد نیستم خواهش میکنم کمک کنید. Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("frmreport") If File.Exists(File.DirInternal,"test.db")=False Then File.Copy(File.DirAssets,"test.db",File.DirInternal,"test.db") End If sqll.Initialize(File.DirInternal,"test.db",False) End Sub Sub btnreport_Click Dim cur1 As Cursor cur1=sqll.ExecQuery("SELECT * FROM tbl_list") For j=0 To cur1.RowCount -1 cur1.Position=j ListView1.AddTwoLines(cur1.GetString("sTitle"),cur1.GetString("sBudy")) Next End Sub RE: جستجو در دیتابیس sqlite - arjian - 03-11-2014 سلام به چند روش میتونی این کار رو انجام بدی من دو روش رو بهت پیشنهاد میدم روش اول : استفاده از کلاس SearchView که باهاش میتونی همزمان با تایپ حروف نتایج رو مشاهده کنی (همانند نرم افزارهای دیکشنری) که فایل مثال رو ضمیمه کردم در این مثال همانند روش خود شما نتایج را در ListView نمایش میدهد در این روش از ایندکس گذاری دیتابیس استفاده می شود و سرعت جستجو و نمایش نتایج بالا می باشد ولی برای نمایش نتایجی که بیش از یک یا دو ستون هستند جالب نیست روش دوم: برای راحتی کار و جلوگیری از شلوغ شدن Listview می تونی با شیلتر کردن داده ها به نتیجه دلخواه برسی بطور مثال می تونی از Spinner برای شیلتر داده ها استفاده کنی مثال: در بانک اطلاعاتی که شامل اطلاعات افراد هست و دارای فیلدهایی از قبیل : محل زندگی،محل تولد،سال تولد و ... می تونی از دو spinner استفاده کنی که در اولی محل تولد رو انتخاب میکنی و در دومی محل زندگی و ... در نتیجه نتایج خروجی محدود خواهد بود،در این روش چند نکته حائز اهمیت است اول اینکه می تونی هر spinner رو با دستور ذیل(بر حسب برنامه باید اصلاح شود) مقدار دهی کنی کد پیاچپی: DBUtils.ExecuteSpinner(Main.SQL1, Query1, Null, 0, spnTemp) سوم اینکه رویدادهای تغییر spinner ها رو کد نویسی کنید تا در صورت تغییر مقدار انتخابی در هر spinner مقادیر spinner های دیگر متاثر از آن تغییر نماید چهارم اینکه اگر نتایج شما زیاد است یا بیش از یک ستون در نتایج باید نمایش داده شود پیشنهاد می شود از tableView بجای listview استفاده نمایید |