PDA

View Full Version : سوال: چگونگی نحوه ورود کاربر به برنامه با Rol های تعریف شده و تشریح چند کد در همین رابطه



sahel65
شنبه 22 مهر 1391, 08:32 صبح
سلام دوستان؛
یک سوال از حضورتون داشتم.
من میخوام برای کاربران رولهای متفاوتی مثل admin و یا کاربر معمولی ایجاد کنم.
میخواستم ببینم چجوری میشه این کار رو انجام داد.
ضمنا چند کد در همین رابطه پیدا کردم؛ امکانش هست برخی از خطوطش رو که مشکل دارم بهم بگید چه کاری انجام میدن؟
ببینید:



private bool CompareStrings(string string1, string string2)
{ return String.Compare(string1, string2, true, System.Globalization.CultureInfo.InvariantCulture) == 0 ? true : false;
}

SqlCommand cmd = new SqlCommand("SELECT ISNULL(stUsername, '') AS stUsername, ISNULL(stPassword,'') AS stPassword, ISNULL(stRole,'') AS stRole FROM LoginDetails WHERE stUsername='" + textBoxUsername.Text + "' and stPassword='" + textBoxPassword.Text + "'", UGIcon);

در این کد ISNULL و همچنین بکار بردن کلمه AS و نحوه پیاده سازی اینگونه جدول رو میشه توضیح بدین؟

veniz2008
شنبه 22 مهر 1391, 10:25 صبح
سلام. راه اصولی برای تشخیص Role اینه که یک جدول Role داشته باشی شامل حداقل دو فیلد username و role که username کلید جدول هستش. (میتونی پسورد رو هم همینجا داشته باشی و جدولی به نام کاربران ( users) نداشته باشی، این سلیقه ای هست و خودتون انتخاب کنید). با فرض اینکه جدول Role داشته باشی بعد از اینکه کاربر یوزر و پسورد رو وارد کرد و صحیح بود اونوقت یه select به جدول role میزنید و رول اون کاربر رو بیرون میکشید.
تابع ISnull : این تابع چک میکنه که اگر فیلد مورد نظر null بود(یعنی هیچی داخلش نبود) یه مقدار خاص رو که شما بهش میگید برگردونه. اگر روی فیلد عددی این تابع بکار بره معمولا 0 یا 1 برمیگردونن (با توجه به نیاز مساله) ولی زمانیکه بر روی یک فیلد رشته ای اعمال میشه معمولا "" رو بهش میدن ولی اینجا هم به خود شما بستگی داره که چی برگردونه.
کلمه AS یه نام جدید به ستون(ها) (فیلد(ها)) که در select نوشتید اختصاص میدید. فرض کنید دو فیلد firstname و lastname رو میخواید به هم بچسبونید و یه نام جدید بهش اختصاص بدید.
اگر بصورت select firstname + " " + lastname As PersonName بنویسید، نام و نام خانوادگی رو به هم میچسبونه و یک نام جدید یعنی PersonName رو براش در نظر میگیره. اگر از As استفاده نکنید توی sql نامش رو not column name میزینه و درون برنامه هم شما رو دچار سردرگمی میکنه.