У меня есть функция в C #, я хочу обновить свою базу данных.Это связано с формой окна с текстовыми полями.Я хочу убедиться, что если кто-то хочет ОБНОВИТЬ только одно или два значения, остальные не заменяются пустыми строками, а скорее сохраняют то, что уже есть.
sqlStr = "UPDATE [CRONUS Sverige AB$Employee] SET [First Name] = COALESCE(@param2, [First Name]), [Last Name] = COALESCE(@param3, [Last Name]), " +
"[Address] = COALESCE(@param4, [Address]), [E-Mail] = COALESCE(@param5, [E-Mail]), [Social Security No_] = COALESCE(@param6, [Social Security No_]) WHERE [No_] = @param1";
sqlCom = new SqlCommand(sqlStr, con);
sqlCom.Parameters.AddWithValue("@param1", id);
sqlCom.Parameters.AddWithValue("@param2", fName);
sqlCom.Parameters.AddWithValue("@param3", lName);
sqlCom.Parameters.AddWithValue("@param4", adress);
sqlCom.Parameters.AddWithValue("@param5", email);
sqlCom.Parameters.AddWithValue("@param6", ssn);
sqlCom.ExecuteNonQuery();
Проблема в том, что если я сейчас пытаюсь ввести нулевое значение, например, в fName, я получаю эту ошибку:
System.Data.SqlClient.SqlException (0x80131904): Параметризованный запрос '(@ param1 nvarchar (2), @ param2 nvarchar (4000), @ param3 nvarchar (11)' ожидает параметр '@ param2', который не был предоставлен.
Любые идеи о том, как решить эту проблему? Я очень благодарен за любую помощь:).