2016-09-09 1 views
0

Ich habe anmelden und Webform1.aspxWerte in Dropdown gemäß Rechte

Werte in Dropdown

**values** 
apples 
oranges 
grapes 
factory 
juices 
banana 
Grapes 

ich will, wenn ich mit Benutzername admin und das Login-Passwort dann Werte in Drop-Down-Werk sein müssen nur dann, wenn als Wenn ich mich mit einem anderen als diesem Admin-Benutzernamen anmelde, möchte ich andere Werte anzeigen als Factory

und auch wenn ich mich mit einem anderen Benutzernamen anmelde dann sind Werte in Dropdown aber nicht vollständige Liste nur einige Werte werden angezeigt wo ich alle Werte außer Fabrik

ich versuche, dieses sp und diese sp funktioniert perfekt

ALTER procedure [dbo].[list] 
as 
select fruits from tblReg 
where fruits <>'' and 
fruits not in ('Factory') 
and fruits not like '%[0-9]%' 
group by fruits 

und i wandeln diese sp 2. Linq-Abfrage

auf Login-Formular kann ich das

Taste

  try 
      { 
       loginmethod(txt_us.Text, txt_pwd.Text); 
       Response.Redirect("WebForm1.aspx"); 
       Session["UserName"] = txt_us.Text; 
      } 
      catch 
      { 
       Label1.Text = (""); 
       Label1.Visible = false; 
      } 
klicken

Login-Methode

private bool loginmethod(string UserName, string Password) 
    { 

     Entities2 td = new Entities2(); 
     splogin_Result sp = td.splogin(UserName, Password).FirstOrDefault(); 
     if (sp.Password == txt_pwd.Text) 
     { 
      return true; 
     } 
     else 
     { 
      return false; 
     } 

    } 

und auf Webformular Seite Last

protected void Page_Load(object sender, EventArgs e) 
     { 
      Entities2 tea = new Entities2(); 
      if (!Page.IsPostBack) 
      { 
       if ((Session["UserName"] as string) == "admin") 
       { 
     //1st query 

regiondrop.DataSource = tea.tblReg.Where(x => x.Fruits== "Factory") 
.Select(x => new { Fruits= x.Fruits, Value = x.Fruits}).Distinct() 
.ToList(); 

       } 
       else 
       { 
       //2nd query 

      regiondrop.DataSource = tea.tblReg.AsEnumerable() 
           .Where(x => x.Fruits.All(char.IsLetter) && 
           x.Fruits!= "" && 
           x.Fruits!= "Factory") 
         .Select(x => new { Fruits=x.Fruits, Value=x.Fruits}) 
         .Distinct().ToList();  
       } 
       regiondrop.DataTextField = "Fruits"; 
       regiondrop.DataValueField = "Fruits"; 
       regiondrop.DataBind(); 
       Label4.Visible = false; 

      } 

     } 
+0

Was ist das Problem mit Ihrem Code? Wird er nicht ausgeführt oder erhalten Sie nicht die gewünschte Ausgabe? –

+0

ja @A_Name_Does_Not_Matter – user6628729

+0

Was ist das Problem? –

Antwort

0

Warum Sie Tisch ‚tblReg‘ mit Benutzerrolle nicht Karte und passieren Session [ „username“] oder Session [ „Rolle“] als Parameter SP und Werte auswählen und in ddl anzeigen. Daten einfach nach Rolle abrufen.

Aktualisiert

Jetzt eine Spalte Rolle (Wert = Admin oder Benutzer) in tbllogin hinzuzufügen.

select role, UserName , Password from tbllogin where [email protected] and [email protected] 

Rolle in Sitzung speichern (Sitzung ["Rolle"]).

nun auch eine Spalte in tblReg hinzufügen und mit Rolle Eg Karte

RegId fruits  Role 
    1  Mango  user 
    2  Apple  Admin 
    3  banana  Admin 

Sie müssen wieder SQL-Parameter von Code passieren hinter

ALTER procedure [dbo].[list] 
@role varchar(10) 
as 
select fruits from tblReg 
where role = @role 

binden schließlich in Code ohne Rolle zu überprüfen.

+0

ich erstelle einfache sp wie diese wähle UserName, Passwort von tbllogin wo UserName = @ UserName und Password = @ Passwort – user6628729

Verwandte Themen