Я хочу написать код, который позволяет только зарегистрированному пользователю в состоянии обновлять данные в DataGridView, используя только свой идентификатор, который он должен записать в textBox1, нажать кнопку и, таким образом, обновить данные в выбранной строке. Прямо сейчас зарегистрированный пользователь может также обновлять данные в DataGridView, используя идентификатор другого пользователя, что не должно быть возможным. Я пробовал этот код:
private void button5_Click(object sender, EventArgs e)
{
string ID = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
if (textBox1.Text == "" || textBox1.Text != ID)
{
MessageBox.Show("Insert your ID and try again.");
}
else
{
try
{
String ConnectionString = @"Data Source=.\SQLEXPRESS01;Initial Catalog=Vagtplan;Integrated Security=True";
SqlConnection myconnection = new SqlConnection(ConnectionString);
myconnection.Open();
DateTime primaryKey= Convert.ToDateTime(dataGridView1.SelectedRows[0].Cells[0].Value);
SqlCommand AddNumberCommand = myconnection.CreateCommand();
AddNumberCommand.CommandText = "UPDATE dbo.Vagter SET [ansatID] = @ansatID WHERE [Dato] = @dato";
AddNumberCommand.Parameters.Add("@ansatID", SqlDbType.Int).Value = textBox1.Text;
AddNumberCommand.Parameters.Add("@dato", SqlDbType.DateTime).Value = primaryKey;
AddNumberCommand.ExecuteNonQuery();
myconnection.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
MessageBox.Show("Du har valgt vagten.");
}
}
Но строка ID = System.Security.Principal.WindowsIdentity.GetCurrent (). Имя не помогает в этом случае. ID также объявляется как тип данных 'int'.
Ожидаемый результат состоит в том, что если в данный момент вошедший в систему пользователь напишет идентификатор другого пользователя в textBox1 и попытается обновить данные в DataGridView, нажав кнопку, то он получит сообщение об ошибке типа «Вы должны использовать свой идентификатор» или что-то в этом роде. вот так.