Я пытаюсь написать код, который проверяет, является ли ячейка в выбранной строке в dataGridView пустой / нулевой, прежде чем ячейка будет обновлена значением. Код, который я написал, работает, но независимо от того, есть ли значение в ячейке в выбранной строке или нет, данные не обновляются. Я пытался с этим кодом:
if (dataGridView1.SelectedRows[0].Cells[1].Value == null)
{
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 AddNumbeCommand = myconnection.CreateCommand();
AddNumbeCommand.CommandText = "UPDATE dbo.Vagter SET [ansatID] = @ansatID WHERE [Dato] = @dato";
AddNumbeCommand.Parameters.Add("@ansatID", SqlDbType.Int).Value = textBox1.Text;
AddNumbeCommand.Parameters.Add("@dato", SqlDbType.DateTime).Value = primaryKey;
AddNumbeCommand.ExecuteNonQuery();
myconnection.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
MessageBox.Show("The cell is updated.");
}
}
else
{
MessageBox.Show("There is already a value in the cell.");
}
Как я уже упоминал ранее, реальный результат заключается в том, что независимо от того, есть ли значение в ячейке в выбранной строке или нет, данные не обновляются. Ожидаемый результат состоит в том, что, когда пользователь выбирает в dataGrdView строку, в которой ячейка под столбцом ansatID уже имеет значение, записывает значение в textBox1 и нажимает «Tilføj ansatID til vagten», он получает ошибку: «Уже есть значение в ячейке. " Если он выберет строку, в которой ячейка под столбцом ansatID пуста, напишите значение в textBox1 и нажмите Tilføj ansatID til vagten, то запрос SQL будет выполнен, и он получит сообщение «Ячейка обновлена». Это также показано на следующем рисунке: