Я работаю над небольшим проектом, в котором пользователь может войти в приложение при первом запуске приложения, и это прекрасно работает.Я хотел добавить способ, с помощью которого пользователи с атрибутом isAdmin могли бы создавать новые учетные записи, которые могут обращаться к приложению.
Пока что я ищу таблицу базы данных "employeeinfo", беря текст, который вводит пользовательв текстовое поле (this.txt_enterAdmin.Text), чтобы решить, есть ли у пользователя права на создание дополнительных учетных записей, а затем, если пользователь присутствует в "employeeinfo", он может затем ввести новое имя пользователя и пароль в таблицу.
Это тоже прекрасно работает.Моя проблема в том, что я не хочу, чтобы какой-либо пользователь мог создавать новые учетные записи, я хочу, чтобы это могли делать только администраторы.Я не уверен, как искать в базе данных с жестко закодированным ДА / НЕТ.Я добавил столбец с именем «isAdmin», а затем назначил каждому пользователю «YES» или «NO» в таблице данных SQLite, используя тип данных «text».
Вот мой код, пожалуйста, посмотрите его:
private void txt_add_newuser_Click(object sender, RoutedEventArgs e)
{
//logic to connect to database, search for the administrator password, and if the data is correct, then create a new user that can use the application.
SQLiteConnection sqliteCon = new SQLiteConnection(dbConnectionString);
sqliteCon.Open();
string YES = "select * from employeeinfo where isAdmin='" + + "' ";
string Query = "select * from employeeinfo where password='" + this.txt_enterAdmin.Text + "' and isAdmin= '" + this.YES + "' ";
SQLiteCommand createCommand = new SQLiteCommand(Query, sqliteCon);
createCommand.ExecuteNonQuery();
SQLiteDataReader dr = createCommand.ExecuteReader();
int count = 0;
while (dr.Read())
{
count++;
}
if (count == 1)
{
try
{
SQLiteConnection sqlite_conn1;
SQLiteCommand sqlite_cmd;
sqlite_conn1 = new SQLiteConnection("Data Source=database.db;Version=3;");
sqlite_conn1.Open();
sqlite_cmd = sqlite_conn1.CreateCommand();
sqlite_cmd.CommandText = "INSERT INTO EmployeeInfo ([username],[password]) values('" + txt_newusername.Text + "','" + txt_newPassword.Text + "' )";
sqlite_cmd.ExecuteNonQuery();
MessageBox.Show("Successfully added new user. Press OK/ENTER to Continue");
//clears fields if new entry to database is accepted.
if (txt_newusername != null)
(txt_newusername).Clear();
if (txt_newPassword != null)
(txt_newPassword).Clear();
if (txt_enterAdmin != null)
(txt_enterAdmin).Clear();
sqlite_conn1.Close();
}
catch
{
MessageBox.Show("Everything was entered correctly, but something broke. Please contact support for help.");
}
}
if (count > 1)
{
MessageBox.Show("Administrator password incorrect. Check your details and try again. Press enter to continue.");
if (txt_enterAdmin != null)
(txt_enterAdmin).Clear();
sqliteCon.Close();
}
if (count < 1)
{
MessageBox.Show("Administrator password incorrect. Check your details and try again. Press enter to continue.");
if (txt_enterAdmin != null)
(txt_enterAdmin).Clear();
sqliteCon.Close();
}
sqliteCon.Close();
}
Я не уверен, как определить строку для значений YES / NO, потому что я не извлекаю данные из пользовательского элемента управления.
Любая обратная связь илилюбые ошибки, которые вы видите, что я могу исправить, также будут оценены.Спасибо.