کلیدستان

نسخه‌ی کامل: مشکل در sqlite (مشکل field های خالی در فرم مخصوص بروزرسانی) (برنامه نویسی اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام به همگی 
من یه table دارم که داخلش 7 تا ستون داره.. یه قسمتی گذاشتم واسه آپدیت table  از طریق ایدی  مشکل من اینه که وقتی میخوام آپدیت کنم اگه همه فیلد ها پر بشه که آپدیت به درستی انجام میشه اما اگه بعضی از فیلد ها خالی بمونه مقدارشون null در نظر گرفته میشه ک مشکل من اینجاست.  میخوام فیلدایی که خالیین همون مقدار قبلی واسشون در نظر گرفته بشه .. ممنون میشم کمک کنید
سلام.
هنگامی که در query (دستور SQl) از UPDATE استفاده کنیم، تنها مقدار ستون هایی (columns) که مشخص کرده ایم، تغییر داده می شوند و مقدار سایر ستون ها همانند قبل باقی می ماند.
UPDATE برای بروزرسانی اطلاعات ((یک ردیف (row) موجود)) به کار می رود (کلید شماره 329).

اما اگر برای ((ردیف های جدید)) که در جدول INSERT می کنید، می خواهید یک مقدار پیش فرض تعیین کنید، می توانید در ساختار جدول، برای ستون مورد نظرتان، مقدار Default تعیین کنید.

-------------------------------

اکنون این حالت را در نظر بگیریم که یک فرم داریم که باید کاربر اطلاعات یک ردیف از جدول را به روزرسانی کند (مثلا 5 ستون از 10 ستون یک ردیف را می خواهیم کاربر ویرایش کرده و تغییر بدهد)، در این موارد، ما ابتدا اطلاعات موجود در آن ردیف را دریافت کرده (همان 5 ستون) و در فرم قرار می دهیم، بعد کاربر، فیلدهای (fields) مورد نظر خود را تغییر می دهد و سپس در انتها، ما تمامی فیلدهای فرم (form) (آن 5 ستون) را در آن ردیف از جدول بروزرسانی می کنیم (با UPDATE). بنابراین جتی اگر کاربر اطلاعات فیلدی را تغییر ندهد، باز چون همان اطلاعات قبلی را در فرم داریم، دوباره همان اطلاعات در ردیف قرار داده می شود.
توضیحی که در بالا داده شده، شکل استاندارد تغییر اطلاعات یک ردیف از جدول، بر اساس فرم (form) می باشد. اما در صورتیکه ما یک فرم خالی به کاربر نمایش بدهیم و بعد تنها فیلدهایی که وی پر می کند، در جدول ثبت شود، در این حالت، نوشتن query سخت خواهد بود، چون معلوم نیست کاربر چه فیلدهایی را می خواهد تغییر بدهد و ما باید اطلاعات قبلی ردیف را هم حفظ کنیم (در اینجا راحتی روش بالا مشخص می شود).
اگر هم قصد دارید که اطلاعات به کاربر نمایش داده نشود (حتما یک فرم خالی را مشاهده کند)، می توانید هنگام ثبت اطلاعات جدید، مقدار مربوط به فیلدهای خالی (که کاربر تعیین نکرده) را از ردیف خوانده و بعد آنها را در query بنویسید (باید چک کنید کدام فیلدها خالی مانده).

Flower
بسیار تشکر ادمین . مشکلم حل شد