Parsi Coders

نسخه‌ی کامل: جستجو در دیتابیس sqlite
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام دوستان به کمک احتیاج دارم من با کد های زیر اطلاعات دیتابیس رو در داخل لیست ویو لود میکنم،
مشکل من این هست که من دیتابیسم حجمش خیلی زیاده و نمیشه اونو لود کرد.راه حلی که داره اینه که اطلاعات مورد نظر توسط کاربر جستجو بشه و فقط نتیجه جستجو لود بشه.این کارو بلد نیستم خواهش میکنم کمک کنید.
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
سلام
به چند روش میتونی این کار رو انجام بدی من دو روش رو بهت پیشنهاد میدم
روش اول : استفاده از کلاس SearchView که باهاش میتونی همزمان با تایپ حروف نتایج رو مشاهده کنی (همانند نرم افزارهای دیکشنری) که فایل مثال رو ضمیمه کردم
در این مثال همانند روش خود شما نتایج را در ListView نمایش میدهد در این روش از ایندکس گذاری دیتابیس استفاده می شود و سرعت جستجو و نمایش نتایج بالا می باشد ولی برای نمایش نتایجی که بیش از یک یا دو ستون هستند جالب نیست
روش دوم: برای راحتی کار و جلوگیری از شلوغ شدن Listview می تونی با شیلتر کردن داده ها به نتیجه دلخواه برسی بطور مثال می تونی از Spinner برای شیلتر داده ها استفاده کنی مثال: در بانک اطلاعاتی که شامل اطلاعات افراد هست و دارای فیلدهایی از قبیل : محل زندگی،محل تولد،سال تولد و ... می تونی از دو spinner استفاده کنی که در اولی محل تولد رو انتخاب میکنی و در دومی محل زندگی و ... در نتیجه نتایج خروجی محدود خواهد بود،در این روش چند نکته حائز اهمیت است اول اینکه می تونی هر spinner رو با دستور ذیل(بر حسب برنامه باید اصلاح شود) مقدار دهی کنی
کد پی‌اچ‌پی:
DBUtils.ExecuteSpinner(Main.SQL1Query1Null0spnTemp
دوم اینکه دقت کنید در spinner ها مقادیر تکراری درج نکنید و بهتر است بر حسب حروف الفبا مرتب گردند (من برای این کار اول یک spnTemp تعریف کردم و سپس تکراری ها رو جدا کردم البته روشهای راحت تری هم وجود دارد)
سوم اینکه رویدادهای تغییر spinner ها رو کد نویسی کنید تا در صورت تغییر مقدار انتخابی در هر spinner مقادیر spinner های دیگر متاثر از آن تغییر نماید
چهارم اینکه اگر نتایج شما زیاد است یا بیش از یک ستون در نتایج باید نمایش داده شود پیشنهاد می شود از tableView بجای listview استفاده نمایید