PDA

View Full Version : سوال در مورد یک دستور برای مشخص کردن مجوز دسترسی کاربران



resident
شنبه 20 بهمن 1386, 16:04 عصر
سلام.
من میخوام وقتی یوزرنیم و پسورد وارد شده توسط کاربر درست بود منوها با توجه به جدولی که طراحی کردم برای هر کاربر نشون داده بشه.
حالا مشکلی که دارم اینه که نمیدونم مثلا اگه باید منوهای x,y نمایش داده بشه ، تو فرم لاگین چجوری اینو مشخص کنم.
اگه اشتباه نکنم اول باید از دیتابیس نام منوهایی که کاربر مجازه اونها رو ببینه ، توی دیتاریدر بریزم و بعد یک شی از فرم اصلی ایجاد کنم و بعد در یک دستور switch مشخص کنم که با توجه به نام منو اون منو نمایش داده بشه.نمیدونم این دستور رو باید چطور بنویسم.
لطفا راهنماییم کنید.
متشکرم.

hassan razavi
شنبه 20 بهمن 1386, 16:10 عصر
شما که مسئله رو خودتون حل کردید دوست عزیز.

Mahdi.Kiani
شنبه 20 بهمن 1386, 16:14 عصر
قبلا نمونه هایی مطرح شده و من راهنمایی های لازم را کردم
جستجو کنید. پیدا می کنید.

resident
شنبه 20 بهمن 1386, 19:22 عصر
مشکل من اینه:
با فرض اینکه نام فرم اصلی home است ، بعد از تایید یوزرنیم و پسورد داریم:


home h = new home();
string str = String.Format("select menutext frm menu,level_user,login where menu.menucode=level_users.menucode and login.username=level_users.username and login.username='{0}",uName.Text);
cmd.CommandText = str;
cmd.Connection = cn;
cn.Open();
SqlDataReader dr= cmd.ExecuteReader();
while (dr.Read()==true)
{
switch(dr[0])
{
case "طراحی محصولات" :


break;

case"پیشنهاد طرح":

break;
}
}
dr.Close();
cn.Close();

سوالم اینه که نمیدونم بعد از case چه دستوری بنویسم که مشخص بشه کدوم منو از فرم home باید نشون داده بشه. اصلا چطور می تونم از فرم لاگین مشخص کنم کدوم آیتمهای منوی فرم اصلی نشون داده بشه.
یه سوال هم دارم و اون اینکه میشه مشخص کرد کدوم منوی اصلی است و کدومیک زیرمنو است؟

resident
یک شنبه 21 بهمن 1386, 09:40 صبح
کسی کمک نمی کنه؟

hassan razavi
یک شنبه 21 بهمن 1386, 10:06 صبح
شما باید به ازای هر فیلدتون از if استفاده کنید. چون dr[0 مقدار یک فیلد رو بر میگردونه نه یه رکورد را.

resident
یک شنبه 21 بهمن 1386, 10:41 صبح
شما باید به ازای هر فیلدتون از if استفاده کنید. چون dr[0 مقدار یک فیلد رو بر میگردونه نه یه رکورد را.
آقای رضوی ممنون از اینکه جواب دادید.
منم میخوام مقدار یک فیلد که نام آیتم های منو هست رو برگردونه. تا اینجا مشکلی نیست. مشکلم اینه که چه کدی بنویسم تا مشخص بشه کدوم آیتمهای منو ی فرم home باید نشون داده بشه.
راستی اینکه شما فرمودید if بذارم ، مگه استفاده از switch اشکالی داره؟

hassan razavi
یک شنبه 21 بهمن 1386, 10:56 صبح
شما فیلدهاتون رو در جدول از جنس bool یا bit در نظر بگیرید دیگه نیازی به if یا switch نیست :



home h = new home();
string str = String.Format("select menutext frm menu,level_user,login where menu.menucode=level_users.menucode and login.username=level_users.username and login.username='{0}",uName.Text);
cmd.CommandText = str;
cmd.Connection = cn;
cn.Open();
SqlDataReader dr= cmd.ExecuteReader();
while (dr.Read())
{
menue1.Enable=dr.GetBoolean(0);
menue2.Enable=dr.GetBoolean(1);
...
}
dr.Close();
cn.Close();