HI ~ У меня есть вопрос о том, как извлекать данные из конкретной учетной записи .. Например, есть 4 сообщения об ошибке существует в базе данныхC# beginner - как получить данные с указанной учетной записью?
2 ошибки сообщает о присвоенных разработчике а, еще 2 ошибки отчет назначены разработчику b.
Если я вхожу в систему как разработчик a, я могу просмотреть только 2 ошибки, назначенные мне. как я могу установить код?
(PS: ТНХ для многих ответов с указал, что мое кодирование испытывает риск с инъекцией SQL, я буду редактировать его после окончания моего назначения :).)
вот мое кодирование:
private void bug_view_Click(object sender, EventArgs e)
{
dataGridView1.Visible = true;
bug_info_panel.Visible = true;
string constring = "datasource=localhost;username=root;password=";
MySqlConnection conDataBase = new MySqlConnection(constring);
MySqlCommand cmdDataBase = new MySqlCommand("select * from bug.bug where Assigned = '';", conDataBase);
try
{
dataGridView1.Visible = true;
MySqlDataAdapter sda = new MySqlDataAdapter();
sda.SelectCommand = cmdDataBase;
DataTable dbdataset = new DataTable();
sda.Fill(dbdataset);
BindingSource bSource = new BindingSource();
bSource.DataSource = dbdataset;
dataGridView1.DataSource = bSource;
sda.Update(dbdataset);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
И вот мой Войти форма кодирования enter code here
:
try
{
bool IsAdminUser = false;
bool IsDeveloper = false;
string myConnection = "datasource=localhost;username=root;password=";
MySqlConnection myConn = new MySqlConnection(myConnection);
MySqlCommand SelectCommand = new MySqlCommand("select * from logintable.account where id='" + this.username_txt.Text + "' and password='" + this.password_txt.Text + "' ;", myConn);
MySqlDataReader myReader;
myConn.Open();
myReader = SelectCommand.ExecuteReader();
int count = 0;
while (myReader.Read())
{
count = count + 1;
IsAdminUser = myReader["permissions"].ToString().Equals("Admin");
IsDeveloper = myReader["permissions"].ToString().Equals("Developer");
}
if (count == 1 && IsDeveloper == true)
{
MessageBox.Show("You are logged in as Developer ");
this.Hide();
DeveloperForm developform = new DeveloperForm();
developform.ShowDialog();
}
else if (count == 1 && IsAdminUser == true)
{
MessageBox.Show("You are logged in as administrator ");
this.Hide();
AdminForm adminForm = new AdminForm();
adminForm.ShowDialog();
}
else if (count == 1)
{
MessageBox.Show("You are logged in");
this.Hide();
UserForm userform = new UserForm();
userform.ShowDialog();
}
else
MessageBox.Show("Username or Password is not correct ..Please try again");
myConn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
никогда не используйте конкатенации для создания SQL: вы оставьте себя открытым для SQL-инъекций. Параметры * проще *, так как вам не нужно думать о значениях кодировки для базы данных. – Richard