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

مشکل کد زیر


kavirpardaz

سوال

سلام...کد زیر برای لیست علاقه مندی هست...اما فیلد مربوط به لیست علاقه مندی تو دیتابیس رو تغییر نمیده..چرا؟ :(

[	File.Copy(File.DirAssets,"sqldata.db",File.DirInternal,"sqldata.db")
	sql1.Initialize(File.DirInternal,"sqldata.db",True)
	cur1 = sql1.ExecQuery("SELECT * FROM tbl")

If cur1.GetString("FAV") = 0 Then
		cur1.Position = 0
		sql1.ExecNonQuery("UPDATE tbl SET FAV =1 where ID="&lbl.Text )
		ToastMessageShow("مطلب مورد نظر به لیست علاقه مندی ها اضافه شد",False)
	Else
		cur1.Position = 0
		sql1.ExecNonQuery("UPDATE tbl SET FAV =0 where ID="&lbl.Text)
		ToastMessageShow("مطلب مورد نظر از لیست علاقه مندی ها حذف شد",False)
	End If

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

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

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

این طوری شرط بزار برای کپی دیتابیس

''''''''''''''''''''''''''''''''''''''''''''
If File.Exists(File.DirInternal,"tblax.db") = False Then
File.Copy(File.DirAssets,"tblax.db",File.DirInternal,"tblax.db") 
End If

If SQL.IsInitialized = False Then
	SQL.Initialize(File.DirInternal,"tblax.db",False)
End If



CUR=SQL.ExecQuery("Select * FROM tbl")

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

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

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

فرستاده شده از P01Yِ من با Tapatalk

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

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

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

فرستاده شده از P01Yِ من با Tapatalk

نه من کدهاشو پشت سرهم نوشتم وگرنه باز کردن دیتابیس توی ACTIVITY_CREATE انجام میشه و کدهای اپدیت داخل یه ساب دیگه

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

سلام اگه فیلد fav تو دیتابیس از نوع integer پس این خط از کدت اشتباهه

If cur1.GetString("FAV") = 0 Then

درستش به این صورته

If cur1.Getint("FAV") = 0 Then
لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

سلام اگه فیلد fav تو دیتابیس از نوع integer پس این خط از کدت اشتباهه

If cur1.GetString("FAV") = 0 Then

درستش به این صورته

If cur1.Getint("FAV") = 0 Then

این کار رو هم کردم...اما بازم  تو دیتابیس چیزی تغییر نمیکنه

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

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

اگه میشه کدهای کامل اون اکتیویتی رو بذارید...

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

Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
	Private sql1 As SQL
End Sub

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.
	Private Clv As CustomListView
	Public cur1 As Cursor
	Public su As StringUtils
	Dim lbl As Label
	Dim id As Label
	Public share As ImageView
	Public fav As ImageView
	Public copy As ImageView
	Private xml As XmlLayoutBuilder
	Private bd1 As BitmapDrawable
	Private bd2 As BitmapDrawable
	Private bd3 As BitmapDrawable
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	'Activity.LoadLayout("Layout1")
	Activity.SetBackgroundImage(LoadBitmap(File.DirAssets,"bg2.jpg"))
	Clv.Initialize(Me,"Clv_event")
	Activity.AddView(Clv.AsView,15dip,71dip,100%x-30dip,100%y-86dip)
	File.Copy(File.DirAssets,"sqldata.db",File.DirInternal,"sqldata.db")
	sql1.Initialize(File.DirInternal,"sqldata.db",True)
	cur1 = sql1.ExecQuery("SELECT * FROM tbl")
	bd1 = xml.GetDrawable("ic_action_1461957148_share")
	bd2 = xml.GetDrawable("ic_action_1461957497_like_outline")
	bd3 = xml.GetDrawable("ic_action_1461957372_copy")
	For i=0 To cur1.RowCount-1
		cur1.Position = i
		Dim p As Panel
		p.Initialize("")
		p.Color = Colors.White
		share.Initialize("share")
		fav.Initialize("fav")
		copy.Initialize("copy")
		lbl.Initialize("")
		share.Bitmap = bd1.Bitmap
		fav.Bitmap = bd2.Bitmap
		copy.Bitmap = bd3.Bitmap
		lbl.Initialize("")
		id.Initialize("")
		lbl.Gravity =  Gravity.RIGHT
		lbl.Typeface = my_module.Font_Roya
		lbl.TextSize = 20
		lbl.TextColor = Colors.Black
		lbl.Text = cur1.GetString("TXT")
		id.Text = cur1.GetInt("ID")
		p.AddView(lbl, 5dip, 2dip, Clv.AsView.Width - 10dip, 20dip) 'view #0
		Dim minHeight As Int
		minHeight = su.MeasureMultilineTextHeight(lbl,lbl.Text)
		lbl.Height = Max(50dip, minHeight)
		p.AddView(share,Clv.AsView.Width-50dip,lbl.Height+2dip,24dip,24dip)'view #1
		p.AddView(copy,share.Left-60dip,lbl.Height+2dip,24dip,24dip)'view #2
		p.AddView(fav,copy.Left-60dip,lbl.Height+2dip,24dip,24dip)'view #3
		id.Visible =False
		p.AddView(id,0,0,10dip,10dip)'view #4
		Clv.Add(p,lbl.Height+31dip,"Item #" & i)
	Next
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub share_Click
	
	Dim index As Int
	index = Clv.GetItemFromView(Sender)
	Dim pnl As Panel
	pnl = Clv.GetPanel(index)
	Dim lbl = pnl.GetView(0) As Label
	Dim share_matn As Intent
	share_matn.Initialize(share_matn.ACTION_SEND,"")
	share_matn.SetType("text/plan")
	share_matn.PutExtra("android.intent.extra.TEXT",lbl.Text)
	share_matn.WrapAsIntentChooser("اشتراک گذاری با")
	StartActivity(share_matn)
	
End Sub

Sub fav_Click
	Dim index As Int
	Dim pnl As Panel
	index = Clv.GetItemFromView(Sender)
	pnl = Clv.GetPanel(index)
	Dim lbl As Label
	lbl = pnl.GetView(4)
	For i=0 To cur1.RowCount-1
		cur1.Position = i
		If lbl.Text = cur1.GetInt("ID") Then
			Exit
		End If
	Next
	Msgbox(lbl.Text,False)
	Msgbox(i,False)
	If cur1.GetInt("FAV") = 0 Then
'		"SELECT * FROM "&Main.Child&" WHERE id='" &Main.fasl & "'"
		ToastMessageShow("مطلب مورد نظر به لیست علاقه مندی ها اضافه شد",False)
	Else
		sql1.ExecNonQuery("UPDATE tbl SET FAV =0 where ID="&cur1.GetInt("ID"))
		ToastMessageShow("مطلب مورد نظر از لیست علاقه مندی ها حذف شد",False)
	End If
	
End Sub

Sub copy_Click
	Dim index As Int
	Dim cb As BClipboard
	index = Clv.GetItemFromView(Sender)
	Dim pnl As Panel
	pnl = Clv.GetPanel(index)
	
	Dim lbl As Label
	lbl = pnl.GetView(0)
	cb.setText(lbl.Text)
	ToastMessageShow("متن در حافظه کپی شد",False)
End Sub

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

کدها رو به این صورت تست کنید...

کدهای activity create

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	'Activity.LoadLayout("Layout1")
	Activity.SetBackgroundImage(LoadBitmap(File.DirAssets,"bg2.jpg"))
	Clv.Initialize(Me,"Clv_event")
	Activity.AddView(Clv.AsView,15dip,71dip,100%x-30dip,100%y-86dip)

	If File.Exists(File.DirInternal,"sqldata.db") = False Then
	File.Copy(File.DirAssets,"sqldata.db",File.DirInternal,"sqldata.db") 
	End If

	If SQL.IsInitialized = False Then
		SQL.Initialize(File.DirInternal,"sqldata.db",False)
	End If

	cur1 = sql1.ExecQuery("SELECT * FROM tbl")
	bd1 = xml.GetDrawable("ic_action_1461957148_share")
	bd2 = xml.GetDrawable("ic_action_1461957497_like_outline")
	bd3 = xml.GetDrawable("ic_action_1461957372_copy")
	For i=0 To cur1.RowCount-1
		cur1.Position = i
		Dim p As Panel
		p.Initialize("")
		p.Color = Colors.White
		share.Initialize("share")
		fav.Initialize("fav")
		copy.Initialize("copy")
		lbl.Initialize("")
		share.Bitmap = bd1.Bitmap
		fav.Bitmap = bd2.Bitmap
		copy.Bitmap = bd3.Bitmap
		lbl.Initialize("")
		id.Initialize("")
		lbl.Gravity =  Gravity.RIGHT
		lbl.Typeface = my_module.Font_Roya
		lbl.TextSize = 20
		lbl.TextColor = Colors.Black
		lbl.Text = cur1.GetString("TXT")
		id.Text = cur1.GetInt("ID")
		p.AddView(lbl, 5dip, 2dip, Clv.AsView.Width - 10dip, 20dip) 'view #0
		Dim minHeight As Int
		minHeight = su.MeasureMultilineTextHeight(lbl,lbl.Text)
		lbl.Height = Max(50dip, minHeight)
		p.AddView(share,Clv.AsView.Width-50dip,lbl.Height+2dip,24dip,24dip)'view #1
		p.AddView(copy,share.Left-60dip,lbl.Height+2dip,24dip,24dip)'view #2
		p.AddView(fav,copy.Left-60dip,lbl.Height+2dip,24dip,24dip)'view #3
		id.Visible =False
		p.AddView(id,0,0,10dip,10dip)'view #4
		Clv.Add(p,lbl.Height+31dip,"Item #" & i)
		fav.Tag = i
	Next
End Sub

و کدهای fav_Click

Sub fav_Click
Dim img As ImageView
img = Sender
cur1.position = img.tag
	Dim index As Int
	Dim pnl As Panel
	index = Clv.GetItemFromView(Sender)
	pnl = Clv.GetPanel(index)
	Dim lbl As Label
	lbl = pnl.GetView(4)
	If cur1.GetInt("FAV") = 0 Then
		sql1.ExecNonQuery("UPDATE tbl SET FAV =1 where ID="&cur1.GetInt("ID"))
		ToastMessageShow("مطلب مورد نظر به لیست علاقه مندی ها اضافه شد",False)
	Else
		sql1.ExecNonQuery("UPDATE tbl SET FAV =0 where ID="&cur1.GetInt("ID"))
		ToastMessageShow("مطلب مورد نظر از لیست علاقه مندی ها حذف شد",False)
	End If
	
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوستان کسی راه حل نداره؟

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

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

بایگانی شده

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

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

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