2015-05-02 2 views
-1

В настоящее время я экспериментирую, как я могу создать систему входа в систему с различным пользовательским доступом. (У каждого пользователя есть своя информация). У меня две таблицы базы данных, одна называется «пользователь» (здесь находится первичный ключ id, а в нем - имя пользователя и пароль), а вторая таблица - «userInformation» (здесь id внешний ключ и есть информация, как имя, адрес отеля и т.д.) Я сделал это так:Система входа в систему C#

public partial class standardUserInterface : Form 
{ 
    int userIdNumber; 
    string[] userinfo; 
    public standardUserInterface(int userIdNumber) 
    { 
     InitializeComponent(); 
     userinfo = new string[3]; 
     this.userIdNumber = userIdNumber; 
     string selectUserData = "select voornaam,achternaam,woonplaats from dbo.usersinfo inner join dbo.loginuser on [email protected]"; 
     SqlConnection conn = sqlConn.openSqlConnection(); 
     conn.Open(); 
     SqlCommand comm = new SqlCommand(selectUserData, conn); 
     comm.Parameters.AddWithValue("@loginUserId", userIdNumber); 
     SqlDataReader dr = comm.ExecuteReader(); 
     while (dr.Read()) 
     { 
      for (int i = 0; i < 3; i++) 
      { 
       userinfo[i] = dr.GetString(i); 
      } 
     } 
     lblVoornaam.Text = userinfo[0]; 
     lblAchternaam.Text = userinfo[1]; 
     lblAdres.Text = userinfo[2]; 
    } 
} 

Что вы об этом думаете? Есть ли лучший способ, или это сделано правильно?

EDIT

Это Войти до его получения в UserData

private string password; 
    private string username; 
    private int userIdNumber; 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void btnLogin_Click(object sender, EventArgs e) 
    { 
     username = txtUsername.Text; 
     password = txtPassword.Text; 
     userLogin user = new userLogin(username, password); 
     //wachtwoord & gebruikersnaam controleren 
     if (username != "" & password != "") 
     { 
      if (user.checkPassword()) 
      { 
       this.Hide(); 
       userIdNumber = user.checkID(); 
       standardUserInterface openUserInterface = new standardUserInterface(userIdNumber); 
       openUserInterface.ShowDialog(); 
      } 
      else 
      { 
       MessageBox.Show("wachtwoord is onjuist"); 
      } 
     } 
     else 
     { 
      MessageBox.Show("vul alle velden in"); 
     } 
    } 
+1

но что именно вы пытаетесь сделать с этим –

+1

Stack Overflow не для обзора кода, но есть, к сожалению, очень много плохого, код. – CodeCaster

+0

@CodeCaster Я буду держать это в виду, спасибо. – tosorro

ответ

0

ли нам не нужна система аутентификации для входа в систему, в которой можно проверить использованную идентификатор и пароль? только если проверка будет успешной, мы отправимся за получением данных пользователя

Одно из предложений, будет лучше, если мы сможем создать хранимую процедуру для получения пользовательских данных вместо встроенного запроса.

+0

Спасибо за ваш ответ. Когда пользователь будет проверен, он будет искать идентификатор пользователя и сравнить его с идентификатором в таблице userInformation. Затем он берет информацию о пользователе и помещает ее в текстовое поле. – tosorro

+1

_ «будет лучше, если мы сможем создать хранимую процедуру» _ - объясните, почему вы так считаете. – CodeCaster

+0

Преимущества можно найти в ссылке https://msdn.microsoft.com/en-us/library/ms190782.aspx – Vishnu

0

Я сделал это сейчас (хранимая процедура) `

SqlCommand comm = new SqlCommand("searchForUserInformation", conn); 
      comm.CommandType = CommandType.StoredProcedure; 
      comm.Parameters.AddWithValue("@loginUserId", userIdNumber);` 
Смежные вопросы