Я пытаюсь вставить детали в таблицу в зависимости от значения из файла 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. Я не знаю правильного синтаксиса Спасибо за любую помощь
Вам нужен оператор 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
инструкции.
То, что вы ищете, иногда называют UPSERT
. Он будет UPDATE
запись, если она уже существует, или INSERT
если она отсутствует.
Для этой функции SQL Server 2008 и новее имеют ключевое слово MERGE
. В противном случае я бы написал хранимую процедуру с инструкцией IF
с правильной логикой.