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

مشکل با UPDATE در بانک اطلاعاتی


idestudio

سوال

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

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

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

Sub btn_favorite_Click

	If cur1.GetString("fav") = 0 Then
	   Main.SQL1.ExecNonQuery("UPDATE Movement SET fav = 1 WHERE ID = "&cur1.Position)
	   btn_favorite.Bitmap = bitfav2
	   ToastMessageShow("به لیست علاقه مندی ها اضافه شد",True)
	End If
	

	If cur1.GetString("fav") = 1 Then
	   Main.SQL1.ExecNonQuery("UPDATE Movement SET fav = 0 WHERE ID = "&cur1.Position)
	   btn_favorite.Bitmap = bitfav1
	   ToastMessageShow("از لیست علاقه مندی ها حذف شد",True)
	End If  

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

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

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

درود

ببخشید دیتابیس شما فیلد ID نداره ؟؟ :S

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

در ضمن چرا مقادیر رو به صورت عددی زدید ؟ 1 یا 0 ؟ با این شکل بزنید "1" یا "0" تا مشکلی پیش نیاد

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

آقای ایزدی: چرا داره، فیلد کلید هم هست، لطفا راهنمایی کنید، احساس میکنم سوتی چیزی دادم تو کدا

آقای آرتا: تغییرش دادم ولی حل نشد

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

ببینید نکاتی که باید توجه کنید اینه به بزرگی و کوچکی اسم تیبل و ستون ها توجه کنید.

و در ضمن Cur1.Position  رو میشه بگید دقیقا الان مقدارش چنده ؟ 

میشه سورس دوتا اکتویتی رو قرار بدید.

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

ممنون، بزرگی و کوچیکی رو رعایت کردم

cur1.Position = MovementList.pos

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

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

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

pos = Position

pos یه متغیره تو اکتیویتی MovementList که برابره با موقعیت ListViewMenu رویداد ListViewMenu_ItemClick

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

سلام

برای علاقه مندی ها از این کد استفاده کنید :

Sub Button2_Click
	Dim cur1 As Cursor
	cur1=ListMat.SQL1.ExecQuery("SELECT * FROM tbl_1 WHERE id="&ListMat.ListViewValue)
	For i=0 To cur1.rowcount-1
	cur1.position=i
	Dim f As Int
	f = cur1.GetInt("FAV")
	If f = 1 Then
	ListMat.SQL1.ExecNonQuery("UPDATE tbl_1 SET FAV = 0 WHERE id = "&cur1.GetInt("ID"))
	Dim bb As BitmapDrawable
	bb.Initialize(LoadBitmap(File.DirAssets,"fav1.png"))
	Button2.Background=bb
	ToastMessageShow("از لیست علاقه مندی ها حذف شد ",False)
	Else
	ListMat.SQL1.ExecNonQuery("UPDATE tbl_1 SET FAV = 1 WHERE id = "&cur1.GetInt("ID"))
	Dim bb As BitmapDrawable
	bb.Initialize(LoadBitmap(File.DirAssets,"fav2.png"))
	Button2.Background=bb
	ToastMessageShow("به لیست علاقه مندی ها اضافه شد ",False)
	End If
	Next
	cur1.close
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون آثای فرقانی میشه کد

  ListMat.SQL1.ExecNonQuery("UPDATE tbl_1 SET FAV = 0 WHERE id = "&cur1.GetInt("ID"))

رو توضیح بدید

مخصوصا این قسمت رو ListMat

ممنون

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

سلام مجدد

ListMat.SQL1.ExecNonQuery("UPDATE tbl_1 SET FAV = 1 WHERE id = "&cur1.GetInt("ID"))

ListMat نام اکتیویتی هست که لیست مطالب در اون قرار داره .

SQL1 بعد از ListMat : نام متغیری از نوع SQL که برای فراخوانی اطلاعات و نمایش لیست مطالب استفاده کرده ام .

بعد هم داخل " : دستور UPDATE برای بروزرسانی یک رکورد در دیتابیس استفاده می شه .

tbl_1 : نام تیبل مطالب هست .

SET : یعنی ست کردن یه فیلد

FAV : نام همون فیلدی هست که قراره آپدیت بشه

WHERE id = : می گیم اگر id برابر بود با ...

cur1.GetInt("ID") : یعنی برابر باشه با ستون ID در دیتابیس .

 

اگر بد توضیح دادم ببخشید . سوال هم داشتید در خدمتم .

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

 

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

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

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

Sub btn_favorite_Click

	If cur1.GetString("fav") = 0 Then
	   Main.SQL1.ExecNonQuery("UPDATE Movement SET fav = 1 WHERE ID = "&cur1.Position)
	   btn_favorite.Bitmap = bitfav2
	   ToastMessageShow("به لیست علاقه مندی ها اضافه شد",True)
	End If
	

	If cur1.GetString("fav") = 1 Then
	   Main.SQL1.ExecNonQuery("UPDATE Movement SET fav = 0 WHERE ID = "&cur1.Position)
	   btn_favorite.Bitmap = bitfav1
	   ToastMessageShow("از لیست علاقه مندی ها حذف شد",True)
	End If  

End Sub

سلام دوست عزیز. احتمالا شمارش ID ها در دیتا بیستون از 1 شروع میشه و شماره position از صفر. واسه همینه که کار نمیکنه. اگه مشکل دیگه ای داشتید تو لینک زیر پیام بدید.

http://yscience.blogsky.com/

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

سلام مجدد

ListMat.SQL1.ExecNonQuery("UPDATE tbl_1 SET FAV = 1 WHERE id = "&cur1.GetInt("ID"))

ListMat نام اکتیویتی هست که لیست مطالب در اون قرار داره .

SQL1 بعد از ListMat : نام متغیری از نوع SQL که برای فراخوانی اطلاعات و نمایش لیست مطالب استفاده کرده ام .

بعد هم داخل " : دستور UPDATE برای بروزرسانی یک رکورد در دیتابیس استفاده می شه .

tbl_1 : نام تیبل مطالب هست .

SET : یعنی ست کردن یه فیلد

FAV : نام همون فیلدی هست که قراره آپدیت بشه

WHERE id = : می گیم اگر id برابر بود با ...

cur1.GetInt("ID") : یعنی برابر باشه با ستون ID در دیتابیس .

 

اگر بد توضیح دادم ببخشید . سوال هم داشتید در خدمتم .

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

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

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

مشکل رو اینطوری حل کردم، ببینید درسته یا اصولی نیست و یا ممکنه به خطا بر بخوره

توی اکتیویتی کریت برای تعیین آیکن علاقه مندی ها که نشون بده این مطلب جزو علاقه مندی هاست یا نه این شرط رو گذاشتم

If cur1.GetString("fav") = 0 Then
	    btn_favorite.Bitmap = bitfav1
	 End If
	 If  cur1.GetString("fav") = 1 Then
	    btn_favorite.Bitmap = bitfav2
	 End If

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

ممنون

Sub btn_favorite_Click
    If btn_favorite.Bitmap = bitfav1 Then
	   Main.SQL1.ExecNonQuery("UPDATE Movement SET fav = 1 WHERE ID = "&cur1.GetInt("ID"))
	   btn_favorite.Bitmap = bitfav2
	   ToastMessageShow("به لیست علاقه مندی ها اضافه شد",True)

	Else

	   Main.SQL1.ExecNonQuery("UPDATE Movement SET fav = 0 WHERE ID = "&cur1.GetInt("ID"))
	   btn_favorite.Bitmap = bitfav1
	   ToastMessageShow("از لیست علاقه مندی ها حذف شد",True)
	End If  
	
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

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

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