رفتن به مطلب

قرار دادن اطلاعات دیتابیس در کنترل GridView


مجید آرتا

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

به نام خدا

سلام

توی این پست قصد داریم چگونگی قرار دادن اطلاعات دیتابیس توی کنترل ICOSGridView رو توضیح بدیم

عکس اطلاعات و جدول ساخته شده در Navicat:

attachment.php?attachmentid=326&stc=1

عکس از نتیجه کار در برنامه:

attachment.php?attachmentid=327&stc=1

کدهای نوشته شده در این برنامه:

در رویداد Globals:

Sub Globals
[font=Verdana]    Dim grid As ICOSGridView[/font]
[font=Verdana]    Dim sql1 As SQL[/font]
[font=Verdana]    Dim cr As Cursor[/font]
[font=Verdana]End Sub[/font]

در رویداد Create :

Sub Activity_Create(FirstTime As Boolean)
[font=Verdana]    Activity.LoadLayout("grid")[/font]
[font=Verdana]    grid.Initialize("grid")[/font]
[font=Verdana]    Activity.AddView(grid,0,0,100%x,50%y)[/font]
[font=Verdana]    grid.NumColumns=3[/font]
[font=Verdana]    grid.SendToBack[/font]
[font=Verdana]    If File.Exists(File.DirInternal,"grid.db")=False Then[/font]
[font=Verdana]    File.Copy(File.DirAssets,"grid.db",File.DirInternal,"grid.db")[/font]
[font=Verdana]    End If[/font]
[font=Verdana]    If sql1.IsInitialized=False Then[/font]
[font=Verdana]    sql1.Initialize(File.DirInternal,"grid.db",True)[/font]
[font=Verdana]    End If[/font]
[font=Verdana]End Sub[/font]

و در نهایت کدهای اصلی و مربوط به دکمه Load Data:

Sub load_data_btn_Click	grid.Clear
cr=sql1.ExecQuery("SELECT * FROM g_db")
For i=0 To cr.RowCount-1
cr.Position=i
	grid.AddText(""&cr.GetInt("ID"))
	grid.AddText(cr.GetString("Name"))
	grid.AddText(cr.GetString("Family"))
Next
End Sub

توصیح مختصر:

بنده یک دیتابیس با 3تا فیلد یعنی :

ID

Name

Family

ساختم وی یک سری اطلاعات بهش دادم

و توی برنامه اومدم توی کنترل GridView اطلاعات دیتابیس رو قرار دادم

ببینید کتابخانه ICOSGridView رو از پست زیر دانلود و توی پوشه Libraries(این پوشه در محل نصب Basic4Android موجوده) کپی کنید

http://answercenter.ir/showthread.php?t=23

پروژه رو هم واستون پیوست می کنم تا کدهارو بهتر متوجه شید

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

تاپیک بروزرسانی شد و کد مربوط به دکمه load_data_btn تغییر داده شد.(کد داخل پروژه رو هم در صورت استفاده تغییر دهید)

آموزش اختصاصی از Basic4Android.Org

رمز فایل : basic4android.org

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

DataBase In GridView.rar

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

به نام خدا

سلام

توی این پست قصد داریم چگونگی قرار دادن اطلاعات دیتابیس توی کنترل ICOSGridView رو توضیح بدیم

عکس اطلاعات و جدول ساخته شده در Navicat:

attachment.php?attachmentid=326&stc=1

عکس از نتیجه کار در برنامه:

attachment.php?attachmentid=327&stc=1

کدهای نوشته شده در این برنامه:

در رویداد Globals:

Sub Globals
[font=Verdana]    Dim grid As ICOSGridView[/font]
[font=Verdana]    Dim sql1 As SQL[/font]
[font=Verdana]    Dim cr As Cursor[/font]
[font=Verdana]End Sub[/font]

در رویداد Create :

Sub Activity_Create(FirstTime As Boolean)
[font=Verdana]    Activity.LoadLayout("grid")[/font]
[font=Verdana]    grid.Initialize("grid")[/font]
[font=Verdana]    Activity.AddView(grid,0,0,100%x,50%y)[/font]
[font=Verdana]    grid.NumColumns=3[/font]
[font=Verdana]    grid.SendToBack[/font]
[font=Verdana]    If File.Exists(File.DirInternal,"grid.db")=False Then[/font]
[font=Verdana]    File.Copy(File.DirAssets,"grid.db",File.DirInternal,"grid.db")[/font]
[font=Verdana]    End If[/font]
[font=Verdana]    If sql1.IsInitialized=False Then[/font]
[font=Verdana]    sql1.Initialize(File.DirInternal,"grid.db",True)[/font]
[font=Verdana]    End If[/font]
[font=Verdana]End Sub[/font]

و در نهایت کدهای اصلی و مربوط به دکمه Load Data:

Sub load_data_btn_Click
[font=Verdana]    grid.Clear[/font]
[font=Verdana]    cr=sql1.ExecQuery("SELECT * FROM g_db")[/font]
[font=Verdana]    For i=0 To cr.RowCount-1[/font]
[font=Verdana]    cr.Position=i[/font]
[font=Verdana]    Dim ID() As Int : ID=Array As Int(cr.GetInt("ID"))[/font]
[font=Verdana]    Dim Name() As String : Name=Array As String(cr.GetString("Name"))[/font]
[font=Verdana]    Dim Family() As String : Family=Array As String(cr.GetString("Family"))[/font]
[font=Verdana]        For a=0 To ID.Length-1[/font]
[font=Verdana]            For b=0 To Name.Length-1[/font]
[font=Verdana]                For c=0 To Family.Length-1[/font]
[font=Verdana]                grid.AddText(""&ID(a))[/font]
[font=Verdana]                grid.AddText(Name(b))[/font]
[font=Verdana]                grid.AddText(Family(c))[/font]
[font=Verdana]                Next[/font]
[font=Verdana]            Next[/font]
[font=Verdana]        Next[/font]
[font=Verdana]    Next[/font]
[font=Verdana]End Sub[/font]

توصیح مختصر:

بنده یک دیتابیس با 3تا فیلد یعنی :

ID

Name

Family

ساختم وی یک سری اطلاعات بهش دادم

و توی برنامه اومدم توی کنترل GridView اطلاعات دیتابیس رو قرار دادم

ببینید کتابخانه ICOSGridView رو از پست زیر دانلود و توی پوشه Libraries(این پوشه در محل نصب Basic4Android موجوده) کپی کنید

http://answercenter.ir/showthread.php?t=23

پروژه رو هم واستون پیوست می کنم تا کدهارو بهتر متوجه شید

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

آموزش اختصاصی از Basic4Android.Org

رمز فایل : basic4android.org

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

نحوه عملکرد دستور grid.sendtoback

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

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

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

سلام

[b]grid.SendToBack[/b]

این کتترل رو میندازه پشت کنترل های دیگه

اگه شما بیایید این کد رو بنویسید:

[b]grid.BringToFront[/b]

این کنترل میاد روی کنترلی که در محدوده این کنترل ماست قرار میگیره

نوشتن این کد هم ضروری نیست

پس به وسیله این کد میایید یک اولویت بندی واسه نمایش کنترل درست می کنید

مشکلی بود در خدمتم

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

کسری نعمتی مهمان

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

Dim cr As Cursor

راجع به Cursor توضیح بدین لطفا

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

سلام

مرسی کسری جان

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

کسری جان Cursor کلاس مربوط به کتابخوانه SQL هستش یعنی با تعریف شدن کتابخانه SQL ما میتوانیم Intellisense مربوط به Cursor رو ببینیم

خب کار اصلی این کلاس اینه که میاد کوئری های اس کیو ال رو میخونه و طبق اون کوئری همون اطلاعاتو درون خودش نگه داری میکنه و ما از طریق گرفتن مقادیر ردیف ها (Row) و یا ستون ها ( Column ) میتونیم اطلاعات فیلد هایی که در کوئری تعریف کردیم رو بگیریم ( Get )

پس به وسیله کلاس Cursor میتونیم کوئری رو بخونیم و اطلاعات مورد نظر رو پیدا و به نمایش در بیاریم که بسته به نوع داده در دیتابیس ما میاییئ به وسیله Cursor مقادیر رو بر میگردونیم

یعنی اگه توی دیتابیس یک فیلد از نوع Int ساحتین توی بیسیک به وسیله Corsur باید از متد Curosr.GetInt استفاده کنیم

اگه توضیحاتم گنگ یا نا مفهوم بود بگو باز یه جور دیگه توضیح میدم

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

  • 5 ماه بعد...

با سلام

چه جوری میتونم خط کشی و جدول بندی و کلاً گرافیک این دیتا گرید رو تغییر بدم ؟

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

سلام

بنده تست نکردم ولی میتونید یک CustomView ایجاد کنید و گرید ویو رو بهش نسبت بدید و ببینید میوتنید بهش طرحی بدید و تغییرش بدید.

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

  • 1 ماه بعد...

سلام دوستان

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

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

فک نکنم کاره خاصی باشه ها.

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

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

فک نکنم کاره خاصی باشه ها.

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

ممنون از جوابتون

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

Dim ID() As Int : ID=Array As Int(cr.GetInt("ID"))
   Dim Name() As String : Name=Array As String(cr.GetString("Name"))
   Dim Family() As String : Family=Array As String(cr.GetString("Family"))
       For a=0 To ID.Length-1
           For b=0 To Name.Length-1
               For c=0 To Family.Length-1
               grid.AddText(""&ID(a))
               grid.AddText(Name(b))                 grid.AddText(Family(c))

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

سوال بعدی من اینه که چطور به برنامه بگم اگه رو عکس کلیک شد برنامه به طور خودکار همون عکس رو به کاربر امکان اشتراک گذاریش رو بده؟

ممنون میشم جواب بدین

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

ممنون از جوابتون

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

Dim ID() As Int : ID=Array As Int(cr.GetInt("ID"))
   Dim Name() As String : Name=Array As String(cr.GetString("Name"))
   Dim Family() As String : Family=Array As String(cr.GetString("Family"))
       For a=0 To ID.Length-1
           For b=0 To Name.Length-1
               For c=0 To Family.Length-1
               grid.AddText(""&ID(a))
               grid.AddText(Name(b))                 grid.AddText(Family(c))

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

سوال بعدی من اینه که چطور به برنامه بگم اگه رو عکس کلیک شد برنامه به طور خودکار همون عکس رو به کاربر امکان اشتراک گذاریش رو بده؟

ممنون میشم جواب بدین

دوستان لطفا کمک کنید

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

سلام ببینید بنده کد رو آپدیت کردم توی پست اول ببینید.

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

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

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

سلام ببینید بنده کد رو آپدیت کردم توی پست اول ببینید.

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

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

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

Sub load_data_btn_Click

   grid.Clear
cr=sql1.ExecQuery("SELECT * FROM g_db")
For i=0 To cr.RowCount-1
cr.Position=i
	grid.AddText(""&cr.GetString("ID"))
	grid.AddText(cr.GetString("Name"))
	grid.AddBitmap(LoadBitmap(File.DirAssets, cr.GetString("aks")))

Next
End Sub

ولی حالا یه سوال دارم چطور میتونم بگم که اگه رو عکس ها یا متن ها کلیک شد امکان اشتراک گذاری به کاربر بده؟

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

سلام

اول کتابخانه rockroidsend رو دانلود کنید و بعد در رویداد کلیک، از کد زیر استفاده کنید

Dim send As send	send.Initialize
send.ersalmatn(lbl.Text,"other")

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

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

  • 1 سال بعد...

بایگانی شده

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

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

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