sql >> Databáze >  >> RDS >> Sqlserver

Jak vložit řetězec obsahující jednoduché nebo dvojité uvozovky

Pokud používáte správně parametrizované příkazy , nemusíte si s tím dělat starosti. Něco takového (ačkoli se ode mě neučte techniky C#):

string sql = @"UPDATE dbo.table SET col = @p1 WHERE ...;";
string myString = @"hello'foo""bar";

SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = CommandType.Text;
SqlParameter p1 = cmd.Parameters.AddWithValue("@p1", myString);
cmd.ExecuteNonQuery();

(I když byste skutečně měli používat uložené procedury.)

Pokud vytváříte řetězce ručně (což byste opravdu, ale opravdu neměli dělat), musíte oddělovačům řetězce uniknout jejich zdvojením:

INSERT dbo.tbl(col) VALUES('hello''foo"bar');


  1. Optimalizujte dotaz na vlastní připojení MySQL

  2. Průsečíky SQL a ukázky

  3. Existuje způsob, jak omezit pouze spodní rozsah v mysql?

  4. ERROR 2002 (HY000):Nelze se připojit k místnímu serveru MySQL přes soket '/var/run/mysqld/mysqld.sock' (2)