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

جستجو در چند دیتابیس


ah313mad

سوال

سلام دوستان عزیز

 

من چون کتابم از چند فصل طولانی تشکیل شده مجبور شدم محتوای متن رو داخل چند تا دیتابیس بزارم . الان یه صفحه جستجو دارم که می خوام عنوان یا متن جستجو میشه . از تمام دیتابیس ها مثلا 4 تا دیتابیس جستجو کنه . 

اگه میشه راهنمایی کنید . کدش پایینه

#Region  Activity Attributes 
#FullScreen: False
#IncludeTitle: False
#End Region

Sub Process_Globals

End Sub

Sub Globals
Private ListView1 As ListView
Private RadioButton1 As RadioButton
Private RadioButton2 As RadioButton 
Private EditText1 As EditText
Private EditText2 As EditText
End Sub

Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("frm3")
If File.Exists(File.DirInternal,"dbrahsadsale.db")= False Then
File.Copy(File.DirAssets,"dbrahsadsale.db",File.DirInternal,"dbrahsadsale.db")
End If

If Menu1.SQL1.IsInitialized=False Then
Menu1.SQL1.Initialize(File.DirInternal,"dbrahsadsale.db",False)
End If

Dim cur As Cursor
cur=Menu1.SQL1.ExecQuery("SELECT * FROM Tbl1")

For i = 0 To cur.RowCount-1
    cur.Position=i
    ListView1.AddSingleLine2( cur.GetString("Fasl"),cur.GetInt("id")) 
Next

'*********************
Dim bd As BitmapDrawable
    bd.Initialize(LoadBitmap(File.DirAssets,"3-List.png"))
    ListView1.SingleLineLayout.Background=bd
    ListView1.SingleLineLayout.Label.TextColor=Colors.Black
ListView1.SingleLineLayout.Label.Gravity=Gravity.CENTER
    ListView1.SingleLineLayout.Label.TextSize=18
    ListView1.SingleLineLayout.ItemHeight=15%y
Dim a As Typeface
    a=Typeface.LoadFromAssets("BYEKAN.ttf")
    ListView1.SingleLineLayout.Label.Typeface=a



EditText2.Visible=False

Dim bmp As Bitmap
bmp.Initialize(File.DirAssets,"btn-wit.png")
EditText1.SetBackgroundImage(bmp)
EditText2.SetBackgroundImage(bmp) 

EditText1.Typeface=Typeface.LoadFromAssets("BYEKAN.TTF")
EditText2.Typeface=Typeface.LoadFromAssets("BYEKAN.TTF")
RadioButton1.Typeface=Typeface.LoadFromAssets("BYEKAN.TTF")
RadioButton2.Typeface=Typeface.LoadFromAssets("BYEKAN.TTF")

End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub EditText1_TextChanged (Old As String, New As String)
ListView1.Clear
If RadioButton1.Checked Then
Dim cur As Cursor
cur=Menu1.SQL1.ExecQuery("SELECT * FROM Tbl1 WHERE Fasl LIKE '%"&EditText1.Text&"%'")
For i = 0 To cur.RowCount-1
    cur.Position=i
    ListView1.AddSingleLine2(cur.GetString("Fasl"),cur.GetInt("id"))
Dim bd As BitmapDrawable
    bd.Initialize(LoadBitmap(File.DirAssets,"3-List.png"))
    ListView1.SingleLineLayout.Background=bd
    ListView1.SingleLineLayout.Label.TextColor=Colors.Black 
ListView1.SingleLineLayout.Label.Gravity=Gravity.CENTER
    ListView1.SingleLineLayout.Label.TextSize=30
    ListView1.SingleLineLayout.ItemHeight=15%y

Dim a As Typeface
    a=Typeface.LoadFromAssets("BYEKAN.ttf")
    ListView1.SingleLineLayout.Label.Typeface=a
Next
End If
End Sub

Sub EditText2_TextChanged (Old As String, New As String)
ListView1.Clear
Dim cur As Cursor
If RadioButton2.Checked Then
cur=Menu1.SQL1.ExecQuery("SELECT * FROM Tbl1 WHERE Matn LIKE '%"&EditText2.Text&"%'")
For i = 0 To cur.RowCount-1
    cur.Position=i
    ListView1.AddSingleLine2(cur.GetString("Fasl"),cur.GetInt("id"))

Dim bd As BitmapDrawable
    bd.Initialize(LoadBitmap(File.DirAssets,"3-List.png"))
    ListView1.SingleLineLayout.Background=bd
    ListView1.SingleLineLayout.Label.TextColor=Colors.Black  
ListView1.SingleLineLayout.Label.Gravity=Gravity.CENTER
    ListView1.SingleLineLayout.Label.TextSize=30
    ListView1.SingleLineLayout.ItemHeight=15%y

Dim a As Typeface
    a=Typeface.LoadFromAssets("BYEKAN.ttf")
    ListView1.SingleLineLayout.Label.Typeface=a
Next
End If
End Sub

Sub RadioButton1_CheckedChange(Checked As Boolean)
EditText1.Visible=True
EditText1.Text=""
EditText2.Visible=False
End Sub
Sub RadioButton2_CheckedChange(Checked As Boolean)
EditText2.Visible=True
EditText2.Text=""
EditText1.Visible=False
End Sub



Sub ListView1_ItemClick (Position As Int, Value As Object)
Menu1.Fasl=Value
    StartActivity(Mataleb)
End Sub


Sub OpenList_Click
StartActivity(Menu1)
Activity.Finish
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

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

سلام عزیزم

بهترین کار اینه یه جدول به اسم total ایجاد کنی و همه ی سطر هارو در این جدول قرار بدی

بعد هم خیلی ساده از داخل اون جدول جستجو کن

یه راه دیکه هم هست که شما تو اون قسمتی دستور Sql رو مینویسی، پشت سر هم (اگر یک بار لیست ویو رو با حلقه for پر کردی بار دیگه هم باید از حلقه استفاده کنی) برای 10 تا جدولت مثلا بنویسی

یعنی در اصل شما 10 بار یک کد رو برای یک لیست ویو مینویسی

میگرده و هر بار مشترک هارو میاره

 

این دوتا روش به ذهنم میرسه

اما روش اول بهتر و تضمینی تره :)

سلام

من روش اول رو اجرا کردم ولی برنامه هنگ میکنه

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

اولا که کلا کارت اشتباهه و همینطور که دوستاان گفتن هرچقدر فصل و سر فصل هم که باشه با یه دیتا بیس و یه table میشه ساخت

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

بجای اینکه بیای آیتم هارو تو لیست ویو بیاری تو همشون سرچ کنی و نتایج رو بریزی تو چندتا لیست بعد لیست هارو تو لیست ویو نشون بدی پشت سر هم

یعنی تو حلقه از چندتا لیست اد کنی ایتم هاتو

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

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

اولا که کلا کارت اشتباهه و همینطور که دوستاان گفتن هرچقدر فصل و سر فصل هم که باشه با یه دیتا بیس و یه table میشه ساخت

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

بجای اینکه بیای آیتم هارو تو لیست ویو بیاری تو همشون سرچ کنی و نتایج رو بریزی تو چندتا لیست بعد لیست هارو تو لیست ویو نشون بدی پشت سر هم

یعنی تو حلقه از چندتا لیست اد کنی ایتم هاتو

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

سلام

میگم میشه با کد بگی چطوری این کار رو انجام بدم

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

دوست عزیز چند جدول داشتن کار اشتباهی هستش

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

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

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

داداشم من توی یه دیتابیس چنتا جدول ساخنم دیگه

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

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

سلام عزیزم

بهترین کار اینه یه جدول به اسم total ایجاد کنی و همه ی سطر هارو در این جدول قرار بدی

بعد هم خیلی ساده از داخل اون جدول جستجو کن

یه راه دیکه هم هست که شما تو اون قسمتی دستور Sql رو مینویسی، پشت سر هم (اگر یک بار لیست ویو رو با حلقه for پر کردی بار دیگه هم باید از حلقه استفاده کنی) برای 10 تا جدولت مثلا بنویسی

یعنی در اصل شما 10 بار یک کد رو برای یک لیست ویو مینویسی

میگرده و هر بار مشترک هارو میاره

 

این دوتا روش به ذهنم میرسه

اما روش اول بهتر و تضمینی تره :)

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

دوست عزیز چند جدول داشتن کار اشتباهی هستش

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

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

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

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

بایگانی شده

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

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

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