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

کار با دیتابیس در دو اکتیویتی


amir7900

سوال

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

قبلا اموزشش رو دیدم ولی گمش کردم و هر چی سرچ میکنم پیدا نمیکنم

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

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

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

الان اصلا درک نمیکنم چرا این کارو میکنه

با دیتابیس وارد تداخل میشه

این عکس دیتابیس

Ashampoo_Snap_2015_07_26_09h44m00s_001_mاونوقت لیست تست 1 تا 5 رو میاره ولی روی هر کدوم کلیک میکنم تو اکتیویتی بعد میاره "متن تست 5 متن تست 5"لطفا ببینید مشکل از چیه

 

این کد نویسی اکتیویتی اول

#Region  Project Attributes 
	#ApplicationLabel: database
	#VersionCode: 1
	#VersionName: 1.0.0
	#SupportedOrientations: unspecified
	#CanInstallToExternalStorage: False
#End Region

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

Sub Process_Globals
	Dim sql1 As SQL
	Dim cur As Cursor
	Dim meghdar As String

End Sub

Sub Globals

	Private ListView1 As ListView
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("1")
	ListView1.SingleLineLayout.Label.Gravity = Gravity.CENTER
	File.Copy(File.DirAssets,"data.db",File.DirInternal,"data.db")
	sql1.IsInitialized
	sql1.Initialize(File.DirInternal,"data.db",True)
	cur = sql1.ExecQuery("SELECT * FROM mytable")
	For i = 0 To cur.RowCount -1
	cur.Position = i
	ListView1.AddSingleLine(cur.GetString("list"))
	Next
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub



Sub ListView1_ItemClick (Position As Int, Value As Object)
	meghdar = Value
	StartActivity(main2)
End Sub

اینم کدنویسی صفحه دوم

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

Sub Process_Globals


End Sub

Sub Globals
	Private Label1 As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("2")
	Main.sql1.Initialize(File.DirInternal,"data.db",True)
	Label1.Color = Colors.Red
	Main.cur = Main.sql1.execquery("SELECT * FROM mytable")
	For i = 0 To Main.cur.rowcount -1
	Main.cur.position = i
	Label1.Text = Main.cur.GetString("matn")
	Next
End Sub

Sub Activity_Resume
End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

اینم یه فیلم از مشکلم اگه متوجه نشدین

دانلود

اینم سورس اگه نیاز بود

دانلود

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

وب ویو، متن نشون نمیده، صفحه وب نشون میده

اگه قبلا متن هارو ساختی با فرت htm ، میتونی ادرس رو ذخیره کنی و در وبو ویو لودش کنی

 

 

از این طریق یعنی نمیشه؟

Dim a As WebView
a.LoadHtml("<html><body><per><h3>"&code marboot be load kardan az database&"</h3></per></body></html>")
لینک ارسال
به اشتراک گذاری در سایت های دیگر

یه فیلمی بود قشنگ توضیح میداد برای لود کردن از دیتابیس باید چیکار کرد ولی گمش کردم

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

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

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

اما اگه جواب میده ، خوب پس خوبه روشش

فقط یه سوال

دلیل خاصی داری که با وب ویو کار میکنی؟

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

برای این مشکلت عزیزم

شما از اکتیویتی قبلی، meghdar گرفتی

اما استفاده نکردی

 Main.cur = Main.sql1.execquery("SELECT * FROM mytable WHERE id=" & main.meghdar")

اینو بذار کوئری اکتیویتی متنت و ببین کار میکنه یا نه

 

و یه توصیه

توی اکتیویتی اولت، یه بار sql رو اینیشیالایز و بانک رو کپی کن و یه شرط بذار که اگه کپی شده، دیگه کپی نکنه، بعدا به مشکل میخوری

if file.exist(file.dirinternal,"db.db") = false then
file.copy(file.direxternal,"db.db",file.dirinternal,"db.db") 
end if

if sql1.initialized = false then
sql1.initialize(file.dirinternal,"db.db",false)
end if

کدارو دستی نوشتم، چک کن بعد قرار بده :gol:

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

سلام برادر

شما میای و یه متغیر از نوع استرینگ تعریف میکنی در پراسس گلوبالز اکتیویتی اولیه

dim meghdar as string

بعد در ایتم کلیک لیست ویو، 

meghdar = value
startacryivity(matn)

در اکتیویتی بعدیت، به این شکل کار میکنی

cur = sql.exequery("SELECT * FROM tbl WHERE id ="& FirstAct.meghdar)

اسامی اکتیویتی هارو با توجه به برنامه ات تغییر بده دیگه خودت

موفق باشی :gol:

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

سلام برادر

شما میای و یه متغیر از نوع استرینگ تعریف میکنی در پراسس گلوبالز اکتیویتی اولیه

dim meghdar as string

بعد در ایتم کلیک لیست ویو، 

meghdar = value
startacryivity(matn)

در اکتیویتی بعدیت، به این شکل کار میکنی

cur = sql.exequery("SELECT * FROM tbl WHERE id ="& FirstAct.meghdar)

اسامی اکتیویتی هارو با توجه به برنامه ات تغییر بده دیگه خودت

موفق باشی :gol:

خب وقتی من بخوام یه متنی رو توی وب ویو نشون بدم و از دیتابیس لود شه باید چیکار کنم؟

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

وب ویو، متن نشون نمیده، صفحه وب نشون میده

اگه قبلا متن هارو ساختی با فرت htm ، میتونی ادرس رو ذخیره کنی و در وبو ویو لودش کنی

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

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

 

دانلود

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

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

اما اگه جواب میده ، خوب پس خوبه روشش

فقط یه سوال

دلیل خاصی داری که با وب ویو کار میکنی؟

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

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

برادر کار نمیکنه یعنی چی؟

ارور میده، عمل نمیکنه و یا....

اگر چند خط کد بذاری، خیلی بهتر از سورسه

شاید بدون سورس ردیف شه :gol:

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

شما sql رو کپی و اینیشیالایز نکردی

تو اکتیویتی دوم هم حلقه رو به کار نبردی

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

احتمالا مشکلت حل میشه

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

شما sql رو کپی و اینیشیالایز نکردی

تو اکتیویتی دوم هم حلقه رو به کار نبردی

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

احتمالا مشکلت حل میشه

 اینشیالایز ک کردم

حلقه تو اکتیویتی دوم چیه

کتابخونه فراخوانی هم ندارم

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

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

توی اکتیویتی دوم مگه شما متن نمیاری؟

خوب باید حلقه رو ایجاد کنی

for i = 0 to cur.rowcount
cur.position = i
label1.text = cur.getstring("txt")
next
لینک ارسال
به اشتراک گذاری در سایت های دیگر

موقع کامپایل این ارور رو میده

و من اس کیو ال و کورسور رو تو قسمت پراسس گلوبالز زدم چرا تو اکتیویتی دوم قرمز میاره و حتما باید قبلش

.main

استفاده کنم؟

اینم ارور موقع کامپایل

B4A version: 5.00
Parsing code.    (0.00s)
Compiling code.    Error
Error compiling program.
Error description: Unknown member: exequery
Occurred on line: 22
Main.cur = Main.sql1.exequery("SELECT matn FROM mytable"& Main.meghdar)
Word: exequery
لینک ارسال
به اشتراک گذاری در سایت های دیگر

sql رو احتمالا نشناخته دیگه

main رو حتما باید قبلش قرار بدید عزیزم :)

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

مشکل رو پیدا کردم موقع کامپایل

Main.cur = Main.sql1.execquery("SELECT matn FROM mytable"& Main.meghdar)

این قسمت بعد از

.main.sql1

یه اشتباهی میکردم حرف c رو بعد از exe نمیزاشتم

:)

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

بایگانی شده

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

مهمان
این موضوع برای عدم ارسال قفل گردیده است.
  • کاربران آنلاین در این صفحه   0 کاربر

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