رفتن به مطلب

آموزش اضافه - حذف و ویرایش اطلاعات در دیتابیس


مجید آرتا

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

به نام خدا

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

خوب دوست عزیزمون آرمین آموزش تصویری ساختن تیبل رو ارایه کردن و بنده آموزش وصل کردن دیتابیس و اضافه - حذف و ویرایش دیتا رو آموزش میدم

جهت اینکار به کتابخانه SQL نیاز داریم که بنده پیوست می کنم

عکس پایین رو ببینید تا از نتیجه کار با خبر شید:

attachment.php?attachmentid=180&stc=1

خب بنده تیبلی با 4تا ستون ساختم به این شکل

Num

F_Name

L_Name

City

کنترل های لازم:

3تا Button

3تا EditText

و یه دونه ListView

و در Globals می نویسیم

Sub Globals

Dim sql1 As SQL

Dim cursor1 As Cursor

Private city_txt As EditText

Private fname_txt As EditText

Private lname_txt As EditText

Private lst_db As ListView

Dim num_db As String 

End Sub

جهت وصل کردن دیتابیس به شکل زیر عمل می کنیم(نکته:تیبل ساخته شده رو توی پوشه Files حتما کپی کنید)

Sub Activity_Create(FirstTime As Boolean)
   Activity.LoadLayout("db")
   If File.Exists(File.DirInternal,"data.db")=False Then
   File.Copy(File.DirAssets,"data.db",File.DirInternal,"data.db")
   End If
   If sql1.IsInitialized=False Then
   sql1.Initialize(File.DirInternal,"data.db",False)
   End If
   load_data
End Sub

Sub load_data
lst_db.Clear
cursor1 = sql1.ExecQuery("SELECT * FROM My_DB")
Dim i As Int
For i=0 To cursor1.RowCount-1
cursor1.Position=i
lst_db.AddSingleLine(cursor1.GetString("Num")&  "|" &cursor1.GetString("F_Name")& "|" &cursor1.GetString("L_Name")& "|" &cursor1.GetString("City"))
lst_db.SingleLineLayout.ItemHeight=30
lst_db.SingleLineLayout.Label.TextSize=15
lst_db.SingleLineLayout.Label.TextColor=Colors.Red
lst_db.SingleLineLayout.Label.Color=Colors.Gray
Next
End Sub

تحلیل کدهای Activity_Create و load_data:

Activity_Create:

برای اینکه بتونیم به بانک وصل شیم بانکمون باید توی DirInternal قرار بگیره که طبیعتا اصن نمیدونیم کجاست

پس میاییم شرط می زاریم که بیا ببین personal_info.db توی DirInternal اگه وجود نداره پس بیا از پوشه Files بگیر و کپیش کن توی DirInternal

در شرط بعدی گفتیم گه Initialize یا ساخته نشده پس بیا بسازش (منظورم اینه که کلاسشو بساز)

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

load_data:

کد اول میایم لیستو پاک می کنیم چون قصد داریم اطلاعات بهش بدیم

خط دوم اومدیم اطلاعات موجود در دیتابیس رو ریختیم داخل cursor1 و My_DB اسم تیبل بندس

خط چهارم اومدیم اطلاعات دیتابیس رو گرفتیم چون قصد داریم توی لیست ویو نشونشون بدیم

خط پنجم گفتیم بیا پوزیشن یا همون شماره اندیس هم گفته میشه طبق دیتا ها به ایتم ها نسبت بده

یعنی هر ردیف اطلاعات یک شماره اندیس اختصاص می گیره

خط ششم که اومدیم به لیستمون آیتم اضافه کردیم از نوع Single و اومدیم اطلاعات هر ستون رو با GetString گرفتیم و خیلی ساده با یک | از هم جدا کردیم

یه جوری میشه گفت با لیست ویو یک جدول ساختیم

ببینید Num,F_Name,L_Name,City ستون های ما توی دیتابیسمون هستش که اومدیم داده های مربوط به هر ستون رو Get کردیم

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

خط هشتم اومدیم به آیتم ها رنگ دلخواه خودمونو دادیم

خط نهم اومدیم به پشت زمینه آیتم ها رنگ دلخواه دادیم

توی رویداد ItemClick می نویسیم:

Sub lst_db_ItemClick (Position As Int, Value As Object)
   Dim num_value As String
   Dim counter As Int
   num_value=Value
   counter=num_value.IndexOf("|")
   num_value=num_value.SubString2(0,counter)
   num_db=num_value
   cursor1=sql1.ExecQuery("SELECT * FROM My_DB where Num = '" & num_db & "' ")
   For i=0 To cursor1.RowCount-1
   cursor1.Position=i
   fname_txt.Text=cursor1.GetString("F_Name")
   lname_txt.Text=cursor1.GetString("L_Name")
   city_txt.Text=cursor1.GetString("City")
   Next
End Sub

هدف از نوشتن این کدها چیه

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

کد ها کدهای آسونیه توضیح نمیدم اکه واستون نا مفهوم بود اعلام کنید توضیح میدم

خب جهت اضافه کردن اطلاعات می نویسیم:

Sub add_btn_Click
   If fname_txt.Text="" OR lname_txt.Text="" Then
   Msgbox("لطفا تمامی فیلد ها را پر کنید","خالی بودن فیلد")
   Else
   cursor1=sql1.ExecQuery("SELECT Num FROM My_DB")
   If cursor1.RowCount>0 Then
   For i=0 To cursor1.RowCount-1 
   cursor1.Position=i
   Dim new_num As Int
   new_num=cursor1.GetInt("Num")
   Next
   End If
   new_num=new_num+1
   sql1.ExecNonQuery("INSERT INTO My_DB VALUES('" &new_num&"','" &fname_txt.Text&"','"&lname_txt.Text&"','"&city_txt.Text&"')")
   load_data
   fname_txt.Text=""
   lname_txt.Text=""
   city_txt.Text=""
   fname_txt.RequestFocus
   End If

End Sub

3خط اول توضیح نمی خواد

خط چهارم:cursor1 رو برابر می کنیم با ستون Num که همون شماره ردیف ماست

ما میتونستیم یک EditText به Num اختصاص بدیم ولی واسه این که کاربر اذیت نشه و چک نکنه آخرین آیتم شماره ردیفش چنده تا بتونه آیتم بعدی رو وارد کنه ما میاییم این قابلیتو جهت راحتی کاربر و بهینه شدن برناممون انجام می دیم

خط پنجم:اینجا گفتیم اگه ردیف های دیتابیس بزرگتر از 0 بود یعنی اگه اطلاعاتی داریم بیا این کارو انجام بده که خط بعد میگیم چیکا کنه

خط ششم:طبق شرطمون بیا اطلاعات در دیتابیس رو بگیر

خط هفتم:قیلا توضیح دادم

خط هشتم:نیازی به توضیح نیست

خط نهم:اومدیم تعداد ردیف هارو گرفتیم و ریختیم توی متغیر دیگه چون قصد داریم داده اضافه کنیم باید تعداد کل ردیفارو بگیریم و واسه اضافه کردن داده جدید یکی بهش اضافه کنیم

خط دهم و یازدهم:پایان حلقه و پایان شرط

خط دوازدهم:به مقدار ردیف های گرفته شده یکی اضافه می کنیم

خط سیزدهم:اینجا اطلاعات جدید رو اینسرت یا اضافه می کنیم به ستون هامون

خط چهاردهم:فراخوانی متد چرا؟چون داده جدید اضافه کردیم با این کار داده جدید در کنار داده اهی قبلی قرار می گیره

خط های بعد نیازی به توضیح نداره

کدهای دکمه حذف:

Sub del_btn_Click
   sql1.ExecNonQuery("DELETE FROM My_DB where Num ='"&num_db&"' ")
   load_data
   fname_txt.Text=""
   lname_txt.Text=""
   city_txt.Text=""
End Sub

خط اول:میاد ردیف انتخاب شده رو حذف می کنه

خط های بعدی توضیح داده شده

کدهای دکمه ویرایش:

Sub edit_btn_Click
   If fname_txt.Text="" OR lname_txt.Text="" Then
   Msgbox("لطفا تمامی فیلد ها را پر کنید","خالی بودن فیلد")
   Else
   sql1.ExecNonQuery("UPDATE My_DB set F_Name='"&fname_txt.Text&"',L_Name='"&lname_txt.Text&"',City='"&city_txt.Text&"' WHERE Num="&num_db)
   load_data
   End If
End Sub

3خط اول نیازی به توضیح نداره

خط چهارم:میاد کوئری Update رو صدا میزنه برای آپدیت یا ویرایش اطلاعات

ببخشید دیگه درهم ورهم و گنگ توضیح دادم چون هم موس لپ تاپ شکستو هم کیبوردم رو دکمه هاش کلمات فارسی درج نشده

هر مشکلی توی این کدها داشتید یا واستون گنگ بود اعلام کنید ات بیشتر توضیح بدم

رمز فایل:basic4android.org

موفق و موید باشید

SQL.rar

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

عالیه اما اس کیو ال رو پیوست نکردید!!!

بنده هم تو فیلم اموزش editو delete وadd رو داده بودم

یاحق

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

  • 1 ماه بعد...
سلام آقا آرمین

میشه لینک فیلم رو بذارید؟

ممنون

http://answercenter.ir/thread143.html

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

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

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

ممنونم

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

  • 2 ماه بعد...

مجید جان مرسی از آموزشت ( چون دقیقا من اینو میخاستم)

من تمام کدها رو کپی پیست کردم و بعدش هم یک بانکی مثل گفته شده ساختم . موقع ورود به برنامه ارور column'City' does not exist میده

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

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

عالی بود خسته نباشید.

یه سوال،میشه با MicroSoft Acces 2007 یا 2003 دیتابیس ساخت واسه اندروید؟

واسه زبان ویژوال بیسیک که میشه.

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

میشه. یک سورسی دارم که اطلاعات از اکسس میگیره و میده به بیسیک4اندروید. الان با موبایل آن هستم . شب برات آپلود میکنم.

..................

کسی نیست پست قبلیم رو بجوابه

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

ویرایش:

لینک سورس

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

مجید جان مرسی از آموزشت ( چون دقیقا من اینو میخاستم)

من تمام کدها رو کپی پیست کردم و بعدش هم یک بانکی مثل گفته شده ساختم . موقع ورود به برنامه ارور column'City' does not exist میده

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

این خطا خب مشخصه دیگه . گفته نمیتونه Column ای به اسم City رو پیدا کنه . یعنی Column به اسم City وجود نداره !!!

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

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

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

پروژه پیوست شد

رمز فایل : basic4android.org

DataBase.rar

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

اغا ی سوال :

ببخشید میشه ی سورس در مورد این که چ جوری یه نام کاربری و رمز عبور رو جک کنه بزارید ؟؟

یا آموزش گام ب گام دیتابیس.

ممنون

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

اغا ی سوال :

ببخشید میشه ی سورس در مورد این که چ جوری یه نام کاربری و رمز عبور رو جک کنه بزارید ؟؟

یا آموزش گام ب گام دیتابیس.

ممنون

دوست عزیز یه تاپیک جدا بزن

سوالتم دقیق بپرس اگه منظورت اینه یه نام و پسورد به دوتا تکست بدی درست بود یه رویداد اجرا شه اینو بنویس

if et1.text="name" and et2.text="pass" then roydade morede nazaret

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

دوست عزیز یه تاپیک جدا بزن

سوالتم دقیق بپرس اگه منظورت اینه یه نام و پسورد به دوتا تکست بدی درست بود یه رویداد اجرا شه اینو بنویس

if et1.text="name" and et2.text="pass" then roydade morede nazaret

قربون Farzad Musavi برم من

ی سورس میزاری واسم در رابطه با این ؟؟

از دیتابیس بخونه

دمت گرم

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

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

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

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

میشه ی سورس کوچیک بزارید ؟ ممنون میشم.

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

میشه ی سورس کوچیک بزارید ؟ ممنون میشم.

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

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

  • 4 هفته بعد...

سلام

عالی بود

خیلی ممنون

چطور میشه مطالب انجمن رو به علاقمندی ها اضافه کرد؟

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

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

بایگانی شده

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

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

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