PDA

View Full Version : ریختن اطلاعات از دیتابیس به label



ramin149
سه شنبه 11 خرداد 1389, 12:35 عصر
سلام
من کد زیر رو برای خواندن اطلاعات از دیتابیس رو ریختن به label نوشتم ولی خط از با زبان C# ولی به من error می ده اگر کسی می دونه این خط رو به vb تبدیل کنید یا کد دیگه داریید بدید .



Dim no As Integer = dt.Rows.Count
For i As Integer = 0 To no - 1
Dim lbl As String = "lbl_service" + i.ToString
((lbl_service)FindControl(lbl)).Text=dt.Rows[i].Item["ssub"].ToString()

Shahram_Shobeiri
چهارشنبه 12 خرداد 1389, 07:57 صبح
این کد رو امتحان کن:


For i As Integer = 0 To dt.Rows.Count - 1
Dim lbl As String = "lbl_service" + i.ToString
Dim matches() As Control = Me.Controls.Find(lbl, True)
For Each ctrl In matches
If TypeOf ctrl Is Label Then ctrl.Text = dt.Rows(i).Item("ssub").ToString
Next
Next

ramin149
چهارشنبه 12 خرداد 1389, 09:55 صبح
این کد رو امتحان کن:


For i As Integer = 0 To dt.Rows.Count - 1
Dim lbl As String = "lbl_service" + i.ToString
Dim matches() As Control = Me.Controls.Find(lbl, True)
For Each ctrl In matches
If TypeOf ctrl Is Label Then ctrl.Text = dt.Rows(i).Item("ssub").ToString
Next
Next



کد های که قرمز کردم رو خطا می ده آیا باید کتابخانه ای به صفحه ام اضافه کنم ؟؟

Shahram_Shobeiri
چهارشنبه 12 خرداد 1389, 09:58 صبح
چه خطایی میده؟

ramin149
چهارشنبه 12 خرداد 1389, 10:02 صبح
Me.Controls.Find
خطا :
'find' is not a member of 'system.web.ui.controlCollection
ctrl.Text
خطا :
text' is not a member of 'system.web.ui.controlCollection

Shahram_Shobeiri
چهارشنبه 12 خرداد 1389, 10:15 صبح
این کدی که من نوشتم واسه windows aplication است. احتمالاً چون وب کار می کنید این خطا رخ داده.
از این کد استفاده کنید:


For i AsInteger = 0 To dt.Rows.Count - 1
Dim lbl AsString = "lbl_service" + i.ToString
Dim lbl_Control AsControl = FindControl(lbl)
If (Not lbl_Control IsNothing) Then
IfTypeOf lbl_Control IsLabelThen lbl_Control.Text = dt.Rows(i).Item("ssub").ToString
EndIf
Next

ramin149
چهارشنبه 12 خرداد 1389, 10:31 صبح
For i As Integer = 0 To dt.Rows.Count - 1
Dim lbl As String = "lbl_service" + i.ToString
Dim lbl_Control As Control = FindControl(lbl)
If (Not lbl_Control Is Nothing) Then
If TypeOf lbl_Control Is Label Then lbl_Control.Text = dt.Rows(i).Item("ssub").ToString
End If
Next


دوباره کد قرمز شده همون خطا قبلی رو می ده فکر کنم یه مشکل کوچکی داشته باشم

Shahram_Shobeiri
چهارشنبه 12 خرداد 1389, 11:29 صبح
اینو امتحان کن:


For i As Integer = 0 To dt.Rows.Count - 1
Dim lbl As String = "lbl_service" + i.ToString
Dim lbl_Control As Label = CType(FindControl(lbl), Label)
If (Not lbl_Control Is Nothing) Then
lbl_Control.Text = dt.Rows(i).Item("ssub").ToString
End If
Next

ramin149
چهارشنبه 12 خرداد 1389, 11:33 صبح
شاید مشکل از برنامه من باشه من الان فایل برنامه ام رو ضمینه می کنم /

Shahram_Shobeiri
چهارشنبه 12 خرداد 1389, 12:14 عصر
این کد آخری رو امتحان کردید؟
این که CType داره. بازم خطا میده؟
جه خطایی؟
راستی چرا کد رو ضمیمه نکردید؟

ramin149
چهارشنبه 12 خرداد 1389, 12:27 عصر
برنامه ضمینه شد
http://www.4shared.com/file/hXs4KARK/WebSite1.html

Shahram_Shobeiri
چهارشنبه 12 خرداد 1389, 13:10 عصر
برای تست کردن کد دیتا تیبل رو از بازی کنار گذاشتم و کد رو به شکل زیر تغییر دادم:


For i As Integer = 0 To 4 'dt.Rows.Count - 1
Dim lbl As String = "lbl_service" + i.ToString
Dim lbl_Control As Label = CType(FindControl(lbl), Label)
If (Not lbl_Control Is Nothing) Then
'lbl_Control.Text = dt.Rows(i).Item("ssub").ToString
lbl_Control.Text = "Hello World!"
lbl_Control.BackColor = Drawing.Color.White
End If
Next

کاملاً درست کار میکنه و هیچ خطایی در کار نیست. شاید مشکل شما همون دیتا تیبل باشه!

ramin149
چهارشنبه 12 خرداد 1389, 15:40 عصر
برنامه من رو دیدید و فکر کنم فهمیدید که من چه کار می خوام بکنم آیا نظری جز این دارید یا نه ؟
می تونید اون فایلی رو که روش کار گردید رو برای من بفرستید ؟

محمد فدوی
پنج شنبه 13 خرداد 1389, 23:45 عصر
سلام.
ببخشید می تونم بپرم چرا از یه TextBox که ReadOnly شده استفاده نمی کنید؟ راحت تر نیست؟!

Shahram_Shobeiri
جمعه 14 خرداد 1389, 10:26 صبح
من تغییر خاصی ندادم تو برنامه شما که بخوام کل برنامه رو ارسال کنم فقط تکه کد بالا رو جایگزین کنید میشه همون برنامه که من تغییر دادم.