مجید آرتا 5,874 ارسال شده در 30 بهمن، ۱۳۹۳ سازنده اشتراک گذاری ارسال شده در 30 بهمن، ۱۳۹۳ سلامعالی بود خیلی ممنون چطور میشه مطالب انجمن رو به علاقمندی ها اضافه کرد؟ از کجا باید تو مطالب انجمن جستجو کرد که نره گوگل سوالتونو رو در یک تاپیک جدا مطرح کنید. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
amirsafari 116 ارسال شده در 25 شهریور، ۱۳۹۴ اشتراک گذاری ارسال شده در 25 شهریور، ۱۳۹۴ به نام خدا با سلام به دوستان و کاربران عزیز خوب دوست عزیزمون آرمین آموزش تصویری ساختن تیبل رو ارایه کردن و بنده آموزش وصل کردن دیتابیس و اضافه - حذف و ویرایش دیتا رو آموزش میدم جهت اینکار به کتابخانه SQL نیاز داریم که بنده پیوست می کنم عکس پایین رو ببینید تا از نتیجه کار با خبر شید: http://answercenter.ir/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 موفق و موید باشید سلام ممنون از آموزش های کاملتون من دقیقا دیزاینم رو مطابق کد های شما انجام دادم . حتی نام دکمه ها و edittext ها و لیست ویو . خلاصه این که موقع کامپایل این ارور رو دارم تورور خدا کمکم کنید از هر آموزشی استفاده کردم آخرش به این خط کد گیر میده . لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
مجید آرتا 5,874 ارسال شده در 25 شهریور، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 25 شهریور، ۱۳۹۴ سلام دوستم نیازی نبود پست اولو نقل کنید. اسم تیبل شما آیا My_DB هستش ؟ این خطا میگه تتیبلی با اسم My_DB رو نمیتونه پیدا کنه. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
ezraiil 20 ارسال شده در 12 آبان، ۱۳۹۴ اشتراک گذاری ارسال شده در 12 آبان، ۱۳۹۴ سلام اقای ارتا من بر اساس آموزش شما پیش رفتم اما دیتابیس اصلی من هیچ تغییری نمیکنه باید چه کار کنم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
مهدی ایزدی 9,203 ارسال شده در 12 آبان، ۱۳۹۴ اشتراک گذاری ارسال شده در 12 آبان، ۱۳۹۴ لطفا تاپیک قدیمی رو بالا نیارید. سوال خودتون رو دقیق و در تاپیک جداگانه مطرح کنید لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.