0

引用符を含むステートメントを挿入したい場合、どうすればよいですか?

たとえば、テキストボックスがあり、次のように入力します。

Future Swami Vivekananda’s grand father's name was "____" .
4

3 に答える 3

7

適切にパラメータ化されたステートメントを使用する場合は、それについて心配する必要はありません。このようなもの(私から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();

(実際にはストアドプロシージャを使用する必要がありますが。)

文字列を手動で作成している場合(実際には、実際には行うべきではありません)、文字列の区切り文字を2倍にしてエスケープする必要があります。

INSERT dbo.tbl(col) VALUES('hello''foo"bar');
于 2012-08-23T18:03:12.327 に答える
4

パラメータ化されたクエリを使用します。引用符はまったく関係ありません。また、データベースはSQLインジェクションに乗っ取られないので、本当に勝ちます。

于 2012-08-23T18:04:18.450 に答える
0

見積もりを2倍にすることができます。

INSERT INTO table
VALUES ('Future Swami Vivekananda''s grand father''s name was "____"')
于 2012-08-23T18:04:59.360 に答える