Использование Таблицы Обновления C# SqlCommand. Параметры

Я пытаюсь обновить использование таблицы MSSQL SqlCommand, я думаю, что это - синтаксическая ошибка с моим T-SQL, но здесь - то, что я имею до сих пор:

SqlCommand sqlCmd = new SqlCommand("UPDATE yak_tickets SET email = @emailParam, subject = @subjectParam, text = @textParam, statusid = @statusIDParam, ticketClass = @ticketClassParam WHERE id = @ticketIDParam", sqlConn);

Параметры работают, как они должны, однако, таблица никогда не обновляется, когда я выполняю код. Любая справка ценилась бы =)

Вот остальная часть кода:

    #region Parameters
    /* Parameters */
    sqlCmd.Parameters.Add("@ticketIDParam", SqlDbType.BigInt);
    sqlCmd.Parameters["@ticketIDParam"].Value = ticketID;

    sqlCmd.Parameters.Add("@emailParam", SqlDbType.NVarChar);
    sqlCmd.Parameters["@emailParam"].Value = ticketToBeSubmitted.getEmail();

    sqlCmd.Parameters.Add("@subjectParam", SqlDbType.NVarChar);
    sqlCmd.Parameters["@subjectParam"].Value = ticketToBeSubmitted.getSubject();

    sqlCmd.Parameters.Add("@textParam", SqlDbType.Text);
    sqlCmd.Parameters["@textParam"].Value = ticketToBeSubmitted.getTicketContent();

    sqlCmd.Parameters.Add("@statusIDParam", SqlDbType.NVarChar);
    sqlCmd.Parameters["@statusIDParam"].Value = ticketToBeSubmitted.getStatus();

    sqlCmd.Parameters.Add("@ticketClassParam", SqlDbType.NVarChar);
    sqlCmd.Parameters["@ticketClassParam"].Value = ticketToBeSubmitted.getTicketClass();
    #endregion

    #region Try/Catch/Finally
    /* Try/Catch/Finally */

    try
    {
        sqlConn.Open();
        sqlCmd.ExecuteNonQuery();
    }
    catch (SqlException sqlEx)
    {
        sqlErrorLabel.Text = sqlEx.ToString();
        sqlErrorLabel.ForeColor = System.Drawing.Color.Red;
    }
    finally
    {
        sqlConn.Close();
    }

И подпись метода:

  public static void updateTicketInDatabase(Ticket ticketToBeSubmitted, Label sqlErrorLabel, int ticketID)
5
задан Liam - Reinstate Monica 26 April 2017 в 12:47
поделиться

3 ответа

Пара вопросов:

  1. Это внутри транзакции, которая получает откат?
  2. Вы проверили, соответствует ли @ticketIDParam набору строк в таблице? Особенно, если это не просто целочисленный ключ.
  3. Вы обновляете строки, которые не имеют побочных эффектов (например, ваше обновление до тех же значений)?
  4. Можете ли вы предоставить операторы paramaters.Add для этого запроса
  5. Есть ли триггер или другой параметр в таблице (я полагаю, что нет, поскольку вы ничего не упомянули).
  6. Вы сказали, что знаете, что параметры работают правильно, можете ли вы сказать, как вы это проверили? (профилировщик, визуальный осмотр и т. д.)
1
ответ дан 14 December 2019 в 04:39
поделиться

UPDATE FROM - недопустимый синтаксис (редактировать: OP исправил это). Проблема также может заключаться в столбце « текст ». текст - ключевое слово в SQL Server, так как это тип данных. Попробуйте заключить его в скобки.

UPDATE yak_tickets 
SET email = @emailParam, 
    subject = @subjectParam, 
    [text] = @textParam, 
    statusid = @statusIDParam, 
    ticketClass = @ticketClassParam 
WHERE id = @ticketIDParam
5
ответ дан 14 December 2019 в 04:39
поделиться

Пришлось использовать if(!Page.IsPostBack)

.
2
ответ дан 14 December 2019 в 04:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: