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

قرار دادن چند عکس در یک فیلد دیتابیس


efizakeri0098

سوال

با سلام

 

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

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

 

:areuok: :areuok:

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

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

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

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

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

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

1.thumb.png.3229b10c004458efe15e66f23b50

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

فیلد اول که id همه میدونین چیه

فیلد دوم به اسم Type برای مشخص کردن متن و عکس ساخته شده جوری که برای ایتم عکس مقدار اونو یک بدین و برای ایتم متن مقدار اونو 0 (بدین طبق عکس بالا)

فیلد سوم هم که توش متن و عکسامونو میزاریم جوری که برای فراخوانی عکس باید اسم عکس رو همراه با پسوند به اون بدین و عکس هارو تو پوشه File کپی کنین و دیگه نیاز نیست از Blob استفاده کنین و متن ها رو هم به طور معمول تو Memo بدین

در دیتابیس بالا اگه دقت کنین من اول یک عکس دادم و بعد یه متن که تو اسکرول وییو اول عکس رو نشون خواهد داد و سپس متن که اینارو شما طبق نوشتتون میتونید تغییر بدین و شخصی سازی کنین

خب دیتابیسو سیو کنین و تو بیسیک فراخوانی کنین

در بیسیک ابتدا sql و cur رو اینشیالایز کنین

در اکتیویتی بعدی یه لیست وییو درست کنین و اونو فراخوانی کنین

Sub Process_Globals
	Dim m As Int = 0
End Sub

Sub Globals
	Private ListView1 As ListView
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("ACTLIST")
	ListView1.AddSingleLine("answercenter")
	ListView1.AddSingleLine("mehrab")
	ListView1.AddSingleLine("MMP")
	
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub


Sub ListView1_ItemClick (Position As Int, Value As Object)
	If Position = 0 Then
		m = 100
		StartActivity(ACTMATN)
	Else If Position = 1 Then
		m = 200 
		StartActivity(ACTMATN)
	Else if Position = 2 Then
		m = 300
		StartActivity(ACTMATN)
	Else if Position = 3 Then
		m = 400
		StartActivity(ACTMATN)
	End If
End Sub

در کدای بالا من سه خط به لیست وییو اضافه کردم . بعضی از کاربرا یه مشکلی دارن که برای هر یک از ایتم های لیست وییو یه اکتیویتی باز میکنن و این باعث شلوغی پروژه و بالا اومدن حجم میشود (مثلا بعضی از کتاب های چند فصلی ) برای اینکه از اینکار جلوگیری شود و فقط با یه اکتیویتی کار رو راحت کرد من یه متغییر int تعریف کردم (دقت کنید که باید در قسمت Sub Process_Globals  اونو تعریف کنین ) و در قسمت ساب کلیک لیست وییو بر اساس هر پوزیشن بهشون یه مقدار از خودم دادم و استارت اکتیویتی کردم.

در اکتیویتی بعد اگه بخوایم که وقتی رو هر  یک از ایتم های لیست وییو کلیک شد متن مربوط به اونو نشون بده از این کدا باید استفاده کنین

Sub Process_Globals

End Sub

Sub Globals
	Private Label1 As Label
	Private ScrollView1 As ScrollView
	Dim fara As Farakhani
	Dim lbl As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("ACTMATN")
	
	If ACTLIST.m = 100 Then
		Main.cur = Main.sql.ExecQuery("SELECT * FROM Matn WHERE id BETWEEN 1 AND 4 ")
		show
	Else if ACTLIST.m = 200 Then
		Main.cur = Main.sql.ExecQuery("SELECT * FROM Matn WHERE id BETWEEN 5 AND 8 ")
		show
	Else If ACTLIST.m = 300 Then
		Main.cur = Main.sql.ExecQuery("SELECT * FROM Matn WHERE id BETWEEN 9 AND 11 ")
		show
	End If

در کدای بالا من بر اساس متغییری که در اکتیویتی قبلی تعریف کرده بودم اونارو طبقه بندی کردم جوری که من در اکتیویتی قبلی برای ایتم یک مقدار 100 رو به متغییر داده بودم و در اینجا گفتم اگه در اکتیویتی قبلی مقدار متغییر 100 بود بیا این مطالبو از دیتابیس بریز تو cur و برو به ساب Show 

در کدای بالا من از BETWEEN استفاده کردم کاربرد بیتوین برای زمانی است که شما یه تیبل دارید و توش همه ی مطالبتونو جمع اوری کردید و هر مطلب را پشت سر هم گذاشته اید مثلا از id 1 تا id 4 یه مطلب هست و از id 5  تا id 8 یه مطلب دیگه و برای فراخوانی جداگانه مطلب ها از این کد استفاده میشود

Sub show
	Dim h As Int = 2%y
	For i = 0 To Main.cur.RowCount - 1
		Main.cur.Position = i
		If Main.cur.GetInt("Type") = 0 Then
			Dim lbl As Label
			lbl.Initialize("")
			lbl.Textcolor = Colors.White
			lbl.Textsize = 17
			lbl.Text = Main.cur.GetString("matn")
			ScrollView1.Panel.AddView(lbl,3%X,h,ScrollView1.Width - 5%x,0)
			Dim su As StringUtils
			lbl.Height = su.MeasureMultilineTextHeight(lbl,lbl.Text)
			h = h + lbl.Height + 2%y
			ScrollView1.panel.height = h
		else if Main.cur.GetInt("Type") = 1 Then
			Dim image1 As ImageView
			image1.Initialize("")
			image1.Bitmap = LoadBitmap(File.DirAssets,Main.cur.GetString("matn"))
			image1.Gravity = Gravity.FILL
			ScrollView1.panel.addview(image1,0,h,ScrollView1.Width,50%y)
			h = h + 50%y + 2%y
			ScrollView1.Panel.Height = h
		End If
	Next
End Sub

و قسمت اصلی این اموزش ساب بالا هست که به طور مرتب و منظم عکس ها و متن هارو یکی به یکی فراخوانی میکنه و شما میتونید این کدارو شخصی سازی کنید 

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

خیلی ممنون از آموزشتون اگه سورسش رو هم قرار بدی عالی میشه :areuok:

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

بایگانی شده

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

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

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