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

|سوال درباره کار با دیتابیس و list view


SoRoUsH

سوال

سلام دوستان...فرض کنید من یک لیست ویو دارم و میخوام روی آیتم اولی که کلیک شد ، یه متغیر رو برابر قرار بده با متنی توی دیتابیس که id اون 1 هست! اگه آیتم دومی کلیک شد ، متن دیتابیس با آی دی 2! و همینطور تا آخر...

چطور باید این کار رو انجام بدم؟!

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

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

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

خیلی ممنون جناب نیکروان...تقریبا مشکلم حل شد...فقط یه چیزی...من الان تونستم این اطلاعات دیتابیس رو بصورت MsgBox به کاربر بدم... حالا اگه مثلا بخوام عناوین item های لیست ویو رو هم از دیتابیس بگیرم چیکار کنم؟! اون که position نداره...

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

ممنونم دوست عزیز اما من طبق آموزش شما پیش رفتم ارور میده که Cursor باید Initialize بشه... اما cursor که اصلا Initialize  نداره!

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

خیلی ممنون جناب نیکروان...تقریبا مشکلم حل شد...فقط یه چیزی...من الان تونستم این اطلاعات دیتابیس رو بصورت MsgBox به کاربر بدم... حالا اگه مثلا بخوام عناوین item های لیست ویو رو هم از دیتابیس بگیرم چیکار کنم؟! اون که position نداره...

متوجه نمیشم.

عناوین آیتم های لیست ویو ؟ دیتابیس؟

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

ممنونم دوست عزیز اما من طبق آموزش شما پیش رفتم ارور میده که Cursor باید Initialize بشه... اما cursor که اصلا Initialize  نداره!

یه عکس از ارور قرار بدید !

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

دوستان مشکل حل شد...این کد هم میزارم برای کسانی که به این مشکل برخوردند:

	cur1 = sql1.ExecQuery("SELECT * FROM tbl")
لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

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

یک راه ساده طبق چیزی که بنده از سوالتون فهمیدم اینکه شما از توابع نوع دوم اضافه کردن آیتم در لیست ویو استفاده کنید.

شما مثلا قصد دارید تایتل رو لیست ویو نمایش بدید و روی هر تایتل که کلیک شد متن مورد نظرشو نمایش بده و بنده یک تکه کد فرضی براتون می نویسم :

Dim Cr As Cursor
Cr = SQL.ExecQuery("SELECT * FROM tbl1")
If Cr.RowCount > 0 Then
 For i = 0 To Cr.RowCount - 1
  ListView1.AddSingleLine2(Cr.GetString("title"),Cr.GetInt("id"))
 Next
 Cr.Close
End If

این کد ، کد اضافه کردن تایتل ها به لیست ویو و قرار دادن id هر رکورد د ردیتابیس به عنوان مثدار Value.

Sub ListView1_ItemClick (Position As Int, Value As Object)
  Dim c As Cursor
  c = SQL.ExecQuery("SELECT * FROM tbl1 WHERE id="&Value)
  c.Position = 0
  Label1.Text = c.GetString("Text")
End Sub

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

موفق باشید

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

Sub Globals
Private ListView1 As ListView
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("hhs")
	For i = 0 To 99
		ListView1.AddSingleLine("king " & i )
	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)
	If Value = 0 Then
		Msgbox("0" , "")
	End If
	
		If Value = 1 Then
		Msgbox("1" , "")
	End If
End Sub

دیگه باید بر اساس فراخوانی

کدهارو در

Sub ListView1_ItemClick (Position As Int, Value As Object)
	If Value = 0 Then
		 اینجا
	End If
End Sub

قرار دهید

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

ممنونم فقط من میخوام عناوین لیست ویو رو هم از دیتابیس به همین صورت بگیره...نه اینجوری:

	ListView1.AddSingleLine("king " & i )

کی بلده؟!

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

یه نفر پاسخ بده دیگه

من زیاد با دیتابیس کار نکردم.

ولی باید برای اینکار position رو به علاوه 1 بکنی و بعد طبق ایدی از دیتابیس سلکت کنی و با کرسر دریافتش بکنی.

Sub listview1_ItemClick (Position As Int, Value As Object)
	Position=Position+1
	cursor1=sql1.ExecQuery("SELECT * FROM My_DB where id = '" & Position & "' ")
	cursor1.Position=0
	Msgbox(cursor1.GetString("EsmeSoton"),"")
End Sub

فقط جایگزین کردن اسم ستون و دیتابیس رو باید انجام بدی.

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

من اینارو نوشتم:

Sub ListView1_ItemClick (Position As Int, Value As Object)
Position=Position+1
    sql1.Initialize(File.DirAssets,"faratest.db",True)
	cursor1=sql1.ExecQuery("SELECT * FROM tbl where id = '" & Position & "' ")
	cursor1.Position=0
	Msgbox(cursor1.GetString("title"),"")
End Sub

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

مطمعنم که دیتابیس سالمه...از دیتابیس سمپل فراخانی هم استفاده کردم و...ارور داد!

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

من اینارو نوشتم:

Sub ListView1_ItemClick (Position As Int, Value As Object)
Position=Position+1
    sql1.Initialize(File.DirAssets,"faratest.db",True)
	cursor1=sql1.ExecQuery("SELECT * FROM tbl where id = '" & Position & "' ")
	cursor1.Position=0
	Msgbox(cursor1.GetString("title"),"")
End Sub

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

مطمعنم که دیتابیس سالمه...از دیتابیس سمپل فراخانی هم استفاده کردم و...ارور داد!

Initialize رو اشتباه انجام دادی که.

اول باید دیتابیس از Asset کپی بشه و Internal بعد Initialize بشه.

File.Copy(File.DirAssets,"faratest.db",File.DirInternal,"faratest.db")
sql1.Initialize(File.DirInternal,"faratest.db",False)
لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

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

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