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

مشکل در لیمیت دادن


احسان کرمی

سوال

سلام دوستان

یه سوال خیلی خیلی خیلی مهم دارم.من با استفاده از کتابخانه ی فراخوانی یه سری متن و عکس رو(که کداشو قرار میدم)از دیتابیس میگیرم ولی وقتی این تعداد زیاد میشه برنامه فورس کلوز میده.چه جوری می تونم لیمیت بدم که 5 تا 5 تا لود بشه؟(تو انجمن سرچ کردم ولی چیز خاصی در این  مورد پیدا نکردم)

Sub show
	cur = Main.sql.ExecQuery("SELECT * FROM ee")
	Dim h As Int = 2%y
	For i = 0 To cur.RowCount - 1
		cur.Position = i
		If cur.GetInt("meghdar") = 0 Then
			Dim lbl As Label
			lbl.Initialize("")
			lbl.Textcolor = Colors.Black
			lbl.Textsize = 15
			lbl.Text = cur.GetString("matn")
			ScrollView1.Panel.AddView(lbl,0,h,ScrollView1.Width,100%y)
			Dim su As StringUtils
			lbl.Height = su.MeasureMultilineTextHeight(lbl,lbl.Text)
			h = h + lbl.Height + 2%y
			ScrollView1.panel.height = h
		else if cur.GetInt("meghdar") = 1 Then
			Dim image1 As ImageView
			image1.Initialize("")
			image1.Bitmap = pic(i,"matn")
			image1.Gravity = Gravity.FILL
			Dim be As BitmapExtended
			be.Initialize("")
			ScrollView1.panel.addview(image1,0,h,ScrollView1.Width,50%y)
			h = h + be.getHeight(image1.Bitmap)/2
			ScrollView1.Panel.Height = h
		End If
	Next
End Sub

Sub pic (cur_pos As String , image As String) As Bitmap
	cur= Main.sql.ExecQuery("SELECT * FROM ee")
	cur.Position = cur_pos
    Dim Buffer() As Byte
    Buffer = cur.GetBlob(image)
    Dim InputStream1 As InputStream
    InputStream1.InitializeFromBytesArray(Buffer, 0, Buffer.Length)
	Dim bit1 As Bitmap
    bit1.Initialize2(InputStream1)
    InputStream1.Close
	Return bit1
End Sub

 

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

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

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

از اریا لیست ویو استفاده کن اگه نه که تو کوری لیمیت بده که 5 تارو لود کن و اسکرول ویو نشون بده و ساب scrollchanege بزن اگه 5 تا لود شد 5+5 کنه و 5 تا دیگه رو هم لود کنه . هست تو انجمن واسه این زیاد توضیح نمیدم

 

"SELECT * FROM ee limits 5;

 

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

در 15 ساعت قبل، mohammad3250 گفته است :

از اریا لیست ویو استفاده کن اگه نه که تو کوری لیمیت بده که 5 تارو لود کن و اسکرول ویو نشون بده و ساب scrollchanege بزن اگه 5 تا لود شد 5+5 کنه و 5 تا دیگه رو هم لود کنه . هست تو انجمن واسه این زیاد توضیح نمیدم

 


"SELECT * FROM ee limits 5;

 

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

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

سلام دوباره من با هزار زحمت یه چیرایی پیدا کردم و کدم رو به صورت زیر ویرایش کردم ولی باز هم فورس کلوز میده.:gerye:در ضمن من از کتابخانه ی فراخوانی یه عالمه متن که لابه لاش عکس هم هست رو از دیتابیس میگیرم.در این مورد چیزی تو انجمن نیست.ممنون میشم اگه بگید مشکل این کدهای پایین کجاست؟(خیلی بهش نیاز دارم)

Sub show
	cur = Main.sql.ExecQuery2("SELECT * FROM ee ORDER BY ID LIMIT ?",Array As String(10))
	Dim h As Int = 2%y
	For i = 0 To cur.RowCount - 1
		cur.Position = i
		size = size + 95dip
		If cur.GetInt("meghdar") = 0 Then
			Dim lbl As Label
			lbl.Initialize("")
			lbl.Textcolor = Colors.Black
			lbl.Textsize = 15
			lbl.Text = cur.GetString("matn")
			ScrollView1.Panel.AddView(lbl,0,h,ScrollView1.Width,100%y)
			Dim su As StringUtils
			lbl.Height = su.MeasureMultilineTextHeight(lbl,lbl.Text)
			h = h + lbl.Height + 2%y
			ScrollView1.panel.height = h
		else if cur.GetInt("meghdar") = 1 Then
			Dim image1 As ImageView
			image1.Initialize("")
			image1.Bitmap = pic(i,"matn")
			image1.Gravity = Gravity.FILL
			Dim be As BitmapExtended
			be.Initialize("")
			ScrollView1.panel.addview(image1,0,h,ScrollView1.Width,50%y)
			h = h + be.getHeight(image1.Bitmap)/2
			ScrollView1.Panel.Height = h
		End If
	Next
	cur.Close
	ScrollView1.Panel.Height = size
End Sub

Sub ScrollView1_ScrollChanged(Position As Int)
	cur =Main.sql.ExecQuery2("SELECT * FROM ee OFFSET LIMIT ?,?",Array As String(TenRecordPlus,10))
	 If ScrollView1.ScrollPosition + ScrollView1.Height = ScrollView1.Panel.Height  Then

	For i = 0 To cur.RowCount -1
	cur.Position = i
	Dim p1 As Panel
	p1.Initialize("")
	ScrollView1.Panel.AddView(p1,2%x,size,96%x,90dip)
	size = size + 95dip
	Next

	cur.Close
	ScrollView1.Panel.Height = size
	 DoEvents
	If IsNumber(TenRecordPlus) = True Then
	      TenRecordPlus = TenRecordPlus + 10
	   End If
	End If
 
End Sub

Sub pic (cur_pos As String , image As String) As Bitmap
	cur= Main.sql.ExecQuery2("SELECT * FROM ee ORDER BY ID LIMIT ?",Array As String(10))
	cur.Position = cur_pos
    Dim Buffer() As Byte
    Buffer = cur.GetBlob(image)
    Dim InputStream1 As InputStream
    InputStream1.InitializeFromBytesArray(Buffer, 0, Buffer.Length)
	Dim bit1 As Bitmap
    bit1.Initialize2(InputStream1)
    InputStream1.Close
	Return bit1
End Sub

 

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

درود

ببینید

برنامه رو توی حالت Debug اجرا کنید ببینید به کدوم خط خطا میده که فورس کلوس میشه ؟

یا هم از try catch استفاده کنید و error رو توی یک msgbox نمایش بدید ببینید چه خطایی میده

شما اول خطا رو ببینید و بعدش در پی حل اون مشکل باشید

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

بایگانی شده

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

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

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