Как вставить текст с единственным SQL-сервером цитаты 2005

Я думаю, state - это то, что вы, вероятно, ищете. Вам нужно установить начальное состояние массива в конструкторе, затем обновить его в addToFavourites (используя this.setState) и использовать обновленное состояние в pickRandom. Пожалуйста, обратитесь к документам .

36
задан Binoj Antony 22 April 2009 в 05:00
поделиться

3 ответа

Избегайте одинарных кавычек с дополнительным синглом, как указал Киртан
И если вы пытаетесь выполнить динамический sql (что, в первую очередь, не очень хорошая идея) через sp_executesql, тогда приведенный ниже код будет работать для вас

sp_executesql N'INSERT INTO SomeTable (SomeColumn) VALUES (''John''''s'')'
23
ответ дан 27 November 2019 в 05:51
поделиться

Ответ на самом деле зависит от того, как вы выполняете INSERT .

Если вы задаете литерал SQL, вам нужно использовать подход с двойным тиканием:

-- Direct insert
INSERT INTO Table1 (Column1) VALUES ('John''s')

-- Using a parameter, with a direct insert
DECLARE @Value varchar(50)
SET @Value = 'John''s'
INSERT INTO Table1 (Column1) VALUES (@Value)

-- Using a parameter, with dynamic SQL
DECLARE @Value varchar(50)
SET @Value = 'John''s'
EXEC sp_executesql 'INSERT INTO Table1 (Column1) VALUES (@p1)', '@p1 varchar(50)', @Value

Если вы делаете ВСТАВКУ из кода, используйте параметры:

// Sample ADO.NET
using (SqlConnection conn = new SqlConnection(connectionString)) {
    conn.Open();
    using (SqlCommand command = conn.CreateCommand()) {
        command.CommandText = "INSERT INTO Table1 (Column1) VALUES (@Value)";

        command.Parameters.AddWithValue("@Value", "John's");

        command.ExecuteNonQuery();
    }
}

Если ваши данные содержат пользовательский ввод, прямой или косвенный, ИСПОЛЬЗОВАТЬ ПАРАМЕТРЫ . Параметры защищают от атак SQL-инъекций. Никогда не создавайте динамический SQL с помощью пользовательского ввода.

19
ответ дан 27 November 2019 в 05:51
поделиться
INSERT INTO Table1 (Column1) VALUES ('John''s')

Или вы можете использовать хранимую процедуру и передать параметр как -

usp_Proc1 @Column1 = 'John''s'

Если вы используете запрос INSERT, а не хранимую процедуру, вам придется экранировать кавычку с двумя кавычками иначе все в порядке, если вы этого не сделаете.

7
ответ дан 27 November 2019 в 05:51
поделиться
Другие вопросы по тегам:

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