PDA

View Full Version : سوال: نمایش نام کاربری وارد شده در فرم



djhooman
یک شنبه 21 خرداد 1391, 00:34 صبح
سلام دوستان

یه سوال داشتم ...

من یه تیبل به نام Users دارم که فیلد های نام کاربری ، رمز عبور ، سطح دسترسی ، نام و نام خانوادگی کاربرام توی اون دخیره میشه و شده !

حلا میخوام هر وقت کسی لاگین کرد به برنامه نام و نام خانوادگی شخصی که وارد شده رو برام توی فرم اصلیم نشون بده
مثلا :
نام کاربری : هومن | رمز عبور : 123 | سطح دسترسی : مدیریت | نام و نام خانوادگی : هومن علیزاده

توی فرم لاگین یوزرنیم و پسورد رو به ترتیب هومن و 123 وارد میکنم و وارد میشم و توی صفحه اصلی یه لیبل دارم که نام و نام خانوادگی کسی که لاگین کرده رو باید بنویسه !

ROSTAM2
یک شنبه 21 خرداد 1391, 03:22 صبح
يه راه اينه كه يه متغير عمومي بسازيد بنام CurrentUser و قدار اون رو هربار با Login و تغيير username مقدار اون رو با username ست كنيد بعد از load شدن برنامه مقدار خصوصيت text از label مورد نظر رو برابر با اون متغير كنيد و چون لازمه براي مديريت user شما كاربر فعلي رو بدونيد نيازه كه شما نام كاربري كه داره از برنامه استفاده مي كنه رو بشناسيد و اين با همين متغير currentuser امكانپذيره

morrning
یک شنبه 21 خرداد 1391, 10:00 صبح
من خودم معمولا کاربر فعلی رو داخل یه فایل کد شده کنار برنامه میزارم که هر بار که وارد میشه نام یوزر و بعضی پرمیژن ها داخل اون ذخیره میشه.

Hybrid
یک شنبه 21 خرداد 1391, 10:56 صبح
سلام
یک نمونه واستون نوشتم سطح دسترسی کاربران رو هم داخلش گذاشتم

نام : siavash
رمز عبور : 123


(( بانک رو باز کنید تا یوزر و پسورد های مختلف و همچنین سطح دسترسی ها رو ببینید در بانک نمونه سطح دسترسی کاربران در فیلد UserType قرار داده شده 1 یعنی مدیر و 2 یعنی کاربر عادی))

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

djhooman
دوشنبه 22 خرداد 1391, 00:01 صبح
دوست عزیز ،
ممنون از کمکت

من سیستم لاگین برنامم مثل نمونه شما هستش ....
دقیقا کد هارو بررسی کردم و کدهایی که توی فرمم نبود و تو فرم اوردم اما هنوز نام کاربر و نشون نمیده ......
همه چیز چند بار چک کردم و نشد !!!!!!!!!!!!!!!

Hybrid
دوشنبه 22 خرداد 1391, 09:18 صبح
شما کدی رو قرار ندادین پس دقیقا نمیشه مشکل رو مشخص کرد ،

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

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

SilverGold
دوشنبه 22 خرداد 1391, 17:33 عصر
سلام آقای ابراهیمی

آقا نمیدونم چرا ویندوز سون من وقتی برنامه شما رو اجرا می کنم این خطا رو میده
http://img4up.com/up2/80504031905041910621.jpg

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

bagion
دوشنبه 22 خرداد 1391, 17:48 عصر
سلام آقای ابراهیمی

آقا نمیدونم چرا ویندوز سون من وقتی برنامه شما رو اجرا می کنم این خطا رو میده
http://img4up.com/up2/80504031905041910621.jpg

با این که افیس هم روی سیستم من نصب هستش افیس هم 2010 هستش نمیدونم علت خطا چیه خودش که میگه باید رجیستر بشه ولی چه طوریش رو نمیدونم ممنون میشم راهنمایی کنید
myproject/compile/advanced compile option/x86

M.KH-SH
دوشنبه 22 خرداد 1391, 19:32 عصر
دوست عزیز که میخوای نام کاربری نمایش بدی زبان شما vb هستش و از خیلی امکانات برخوردار هستی من جمله module ها یک روش اینه شما تمام اطلاعات رو در زمان ورود که کاربر وارد برنامه میشه رو داخل متغییر های عمومیت که در ماژول معرفی کردی بریزی و اون متغییر ها رو در صفحه هایی که میخوای نمایش بدی و یا اینکه فرم ها رو به صورت تو در تو فراخوانی کنی که بتونی نمایش بدی

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

djhooman
دوشنبه 22 خرداد 1391, 21:25 عصر
کدهایی که از Form1 رو تو فرم خودم کپی کردم :

Line 41 :

Form2.UserNameAndLastNAme = reader.GetString(3)

حالا Form 2 :

Line 4 :
Private _UserNameAndLastName As String = String.Empty

Line 17 ~ 24 :

Public Property UserNameAndLastNAme() As String
Get
Return _UserNameAndLastName
End Get
Set(ByVal value As String)
_UserNameAndLastName = value
End Set
End Property

Line 45 :

Label1.Text = "آقا/خانم " & " " & _UserNameAndLastName & " " & "خوش آمدید"

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

M.KH-SH
سه شنبه 23 خرداد 1391, 09:02 صبح
چرا property تعریف کردی؟
یعنی این کار رو با کدهایی کمتر از این نمیتونی انجام بدی؟ (صرفا جهت دونستن میپرسم)

Hybrid
سه شنبه 23 خرداد 1391, 09:41 صبح
چرا property تعریف کردی؟
یعنی این کار رو با کدهایی کمتر از این نمیتونی انجام بدی؟ (صرفا جهت دونستن میپرسم)
اگه منظورتون استفاده از Module هست موافق نیستم ، Module رو صرفا به این خاطر در وی بی دات نت قرار دادن که برنامه نویسان وی بی راحتتر به وی بی دات نت کوچ کنند و مشکلی از این بابت نداشته باشن وگرنه کلا با برنامه نویسی شی گرا جور در نمیاد ( Encapsulation ) اگر هم منظورتون تعداد خطوط هستند خودتون بهتر میدونید که در VB2010 امکان تعریف Property در یک خط امکان پذیر هست( auto-implemented properties).روش شما هم جواب میده ولی بهتر نیست به سبک شی گرایی نوشته بشه؟


Public Property Stub As String

در جواب دوستمون djHooman
تا اینجا که مشکلی نبود(البته نمیدونم اون line ها رو واسه چی گذاشتین از دستور goto استفاده کردین؟) کل کد ورود به برنامه رو قرار بده.

M.KH-SH
سه شنبه 23 خرداد 1391, 17:10 عصر
'check user
Private Sub check_user_login()
Dim _login As New Frm_login
_login.ShowDialog()
If _login.check = False Then
End
End If
id = _login.id(_login.id__)
customer_add.Enabled = check_true_or_false(_login.customer_add(_login.id_ _))
customer_edit.Enabled = check_true_or_false(_login.customer_edit(_login.id __))
report.Enabled = check_true_or_false(_login.report(_login.id__))
import.Enabled = check_true_or_false(_login.import(_login.id__))
export.Enabled = check_true_or_false(_login.export(_login.id__))
user_add.Enabled = check_true_or_false(_login.user_add(_login.id__))
user_edit.Enabled = check_true_or_false(_login.user_edit(_login.id__))
End Sub


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

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

حالا هرکسی روش هایی داره ولی از هر چیزی که قرار دادن باید استفاده کرد نه اینکه بگیم چی خوبه و یا چی بده برنامه نویسان ارشد ماکروسافت برای راحتی کار بخشی مثل ماژول رو طراحی کردن نه به خاطر بازار گرمی و تبلیغات

Hybrid
سه شنبه 23 خرداد 1391, 18:49 عصر
حالا هرکسی روش هایی داره ولی از هر چیزی که قرار دادن باید استفاده کرد نه اینکه بگیم چی خوبه و یا چی بده برنامه نویسان ارشد ماکروسافت برای راحتی کار بخشی مثل ماژول رو طراحی کردن نه به خاطر بازار گرمی و تبلیغات
راستش دوست ندارم این بحث رو ادامه بدم چون از بحث تاپیک منحرف میشیم ( با عرض پوزش از دوست عزیز djHooman )

من منکر این حرف نیستم بالاخره هر چیزی کاربردی داره ولی هر چیزی باید در جای درستش استفاده کرد ، خودتون بهتر میدونید که واسه تعریف Extension method باید از Module استفده کرد و کسی اینو نادیده نمیگیره ولی اینکه واسه هر کاری از Module استفاده کرد فکر نمیکنم زیاد جالب به نظر برسه . دلیلتون هم از اینکه استفاده از Property در اینجا جالب نیست نگرفتم ؟ آیا تعداد خطوط مورد نظرتون هست؟!!! یا راحتی؟ فکر نمیکنم راحتی استفاده از Property از تعریف یک متغیر سراسری کمتر باشه.

djhooman
سه شنبه 23 خرداد 1391, 21:35 عصر
دوستای عزیز حالا این دفه رو بخواطر من ببخشید ایشالا سری بعدی هم دیگه رو جای دیگه تیکه پاره کنید :لبخند:

سیاوش جان ، این برنامه که اتچ کردی تو پست اولت ، محیط Design اش باز نمیشه و ارور میده ....
فقط محیط کدنویسی اش باز میشه ... اگه میشه یه بار دیگه فایل و برام بذارید .....

Hybrid
سه شنبه 23 خرداد 1391, 21:46 عصر
دوستای عزیز حالا این دفه رو بخواطر من ببخشید ایشالا سری بعدی هم دیگه رو جای دیگه تیکه پاره کنید
من مخلص ایشون هم هستم اگه این فروم این بحث ها رو هم نداشته باشه خوب دیگه بدرد نمیخوره .


سیاوش جان ، این برنامه که اتچ کردی تو پست اولت ، محیط Design اش باز نمیشه و ارور میده ....
فقط محیط کدنویسی اش باز میشه ... اگه میشه یه بار دیگه فایل و برام بذارید .....

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

دانلود از سرور Uploadkon
(http://uploadkon.ir/?file=5f279094644946ce2c78e8dd18c369dd.rar)

djhooman
سه شنبه 23 خرداد 1391, 23:47 عصر
این ارور رو میده


88198

djhooman
چهارشنبه 24 خرداد 1391, 00:24 صبح
مشکل سر این بود که با .Net 2 کامپایل شده بود که به 3.5 تبدیل کردم و درست شد ...

سیاوش جان ،

هر کاری کردم نشد !!!

میتونی لطف کنی قدم به قدم از اول بگی ( اگه توضیحش هم بدی دیگه شرمندم میکنی ) ؟؟؟؟؟؟

M.KH-SH
چهارشنبه 24 خرداد 1391, 00:46 صبح
دوست عزیز من چاکر سیاوش خان هم هستم این بحث ها در نهایت به بالارفتن سطح علمی منجر میشه چون برنامه نویسی هزار راه داره برای یک مسئله پس تمام اینا رو باید بزاری روی کسب تجربه

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

خلاصش میشه فرماتو همینجوری در یک پروژه جدید اضافه کن درست میشه

djhooman
چهارشنبه 24 خرداد 1391, 22:50 عصر
میتونی لطف کنی قدم به قدم از اول بگی ( اگه توضیحش هم بدی دیگه شرمندم میکنی ) ؟؟؟؟؟؟

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

Hybrid
چهارشنبه 24 خرداد 1391, 23:46 عصر
میتونی لطف کنی قدم به قدم از اول بگی ( اگه توضیحش هم بدی دیگه شرمندم میکنی ) ؟؟؟؟؟؟
داخل فرم اول شما باید چک کنید که آیا اصلا کاربری با مشخصات مذکور وجود داره یا نه ؟ در نمونه برنامه ای واستون قرار دادم تابع CheckUserExist این کارو واستون انجام میده یعنی چک میکنه که آیا کاربری با رمز عبور مشخص شده وجود داره یا نه.

کاره تابع اینه که میاد سطر به سطر اطلاعات رو میخونه ( هر سطر هم شامل 4 تا ستون هست) و مقدار فیلد اول از هر سطر(که همون username هست) رو با username ای که کاربر وارد کرده مقایسه میکنه ( واسه پسورد ها هم همچنین) اونوقت اگه سطری پیدا شد که مشخصاتش با اطلاعات وارد شده همخوانی داشت UserTypes ( که مشخص کننده مدیر یا کاربر عادی هست) رو میگیره و در متغیر UserType قرار میده همچنین نام و نام خانوادگی کاربر که در فیلد 4 ام ذخیره شده رو کامل میگیره و به خاصیت UserNameAndPassword از کلاس Form2 نسبت میده سپس true رو بر میگیردنه مبنی به اینکه کاربر یافت شد سپس فرم اول Hide میشه و مقدار Property یوزر تایپ از فرم دوم هم برابر مقدار UserType فرم جاری میشه و فرم دوم نمایش داده میشه. در رویداد Load فرم دوم هم بر اساسه اینکه مقدار UserType چی هست میاد دکمه ها رو غیر فعال میکنه و نام و نام خانوادگی رو در Label نمایش میده.

یک بار دیگه به دقت کد هاتون رو Trace کنید تا مشکل رو پیدا کنید احتمالا یک مشکل جزئی باعث شده نام و نام خانوادگی نمایش داده نشن.

djhooman
جمعه 26 خرداد 1391, 01:35 صبح
بازم درست نشد :گریه: