Вставьте оператор с предложением where c #

1

Я пытаюсь вставить детали в таблицу в зависимости от значения из файла cookie. вот код

   SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ConnectionString);
        conn.Open();
        string insertQuery = "insert into Details (Employees, Performance, TotalPerformance, Attitude, TotalAttitude) values(@employees, @performance ,@totalPerformance, attitude, totalAttitude)";
        SqlCommand com = new SqlCommand(insertQuery, conn);
        com.Parameters.AddWithValue("@employees", Request.QueryString["employees"]);
        com.Parameters.AddWithValue("@performance", totalPer.ToString());
        com.Parameters.AddWithValue("@totalPerformance", totalPercent.ToString());
        com.Parameters.AddWithValue("@attitude", totalAtt.ToString());
        com.Parameters.AddWithValue("@totalattitude", totalPercent.ToString());



        com.ExecuteNonQuery();

Это отлично работает, но в строке строки ввода строки я хочу добавить в предложение where, где он будет вставлять значения в определенную строку, если значение для столбца "имя" в указанной строке соответствует файлу cookie. Я не знаю правильного синтаксиса Спасибо за любую помощь

  • 0
    Спасибо за помощь ребята
Теги:

2 ответа

4
Лучший ответ

Вам нужен оператор UPDATE, а не оператор INSERT, поскольку вы собираетесь изменить существующую запись.

using (
    SqlConnection conn =
        new SqlConnection(
            ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ConnectionString))
{
    conn.Open();
    string updateQuery =
        @"UPDATE Details 
        SET Employees = @employeee, 
        Performance = @performance , 
        TotalPerformance = @totalPerformance,
        Attitude = @attitude,
        TotalAttitude = @totalattitude
        WHERE yourField = @yourConditionValue";

    using (SqlCommand com = new SqlCommand(updateQuery, conn))
    {
        com.Parameters.AddWithValue("@employees", Request.QueryString["employees"]);
        com.Parameters.AddWithValue("@performance", totalPer.ToString());
        com.Parameters.AddWithValue("@totalPerformance", totalPercent.ToString());
        com.Parameters.AddWithValue("@attitude", totalAtt.ToString());
        com.Parameters.AddWithValue("@totalattitude", totalPercent.ToString());
        com.Parameters.AddWithValue("@yourConditionValue", yourValue);
        com.ExecuteNonQuery();
    }
}

+1, для использования параметров в вашем вопросе, еще одна вещь, приложите свой объект Command и Connection к using инструкции.

  • 0
    Спасибо за помощь
  • 1
    Это сработало отлично, отличная помощь, спасибо
0

То, что вы ищете, иногда называют UPSERT. Он будет UPDATE запись, если она уже существует, или INSERT если она отсутствует.

Для этой функции SQL Server 2008 и новее имеют ключевое слово MERGE. В противном случае я бы написал хранимую процедуру с инструкцией IF с правильной логикой.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню