매개 변수
매개 변수는 SQL 삽입 공격으로부터 보호하는 데 사용됩니다. 사용자 입력을 SQL 문과 연결하는 대신 매개 변수를 사용하여 입력이 리터럴 값으로만 처리되고 실행되지 않도록 합니다. SQLite에서 매개 변수는 일반적으로 SQL 문에서 리터럴이 허용되는 모든 곳에서 허용됩니다.
매개 변수는 :
, @
또는 $
를 접두사로 사용할 수 있습니다.
command.CommandText =
@"
INSERT INTO user (name)
VALUES ($name)
";
command.Parameters.AddWithValue("$name", name);
.NET 값이 SQLite 값에 매핑되는 방법에 대한 자세한 내용은 데이터 형식을 참조하세요.
잘림
Size 속성을 사용하여 텍스트 및 BLOB 값을 자릅니다.
// Truncate name to 30 characters
command.Parameters.AddWithValue("$name", name).Size = 30;
대체 형식
경우에 따라 대체 SQLite 형식을 사용해야 할 수도 있습니다. SqliteType 속성을 설정하여 이 작업을 수행합니다.
다음 대체 형식 매핑을 사용할 수 있습니다. 기본 매핑은 데이터 형식을 참조하세요.
값 | SqliteType | 설명 |
---|---|---|
Char | 정수 | UTF-16 |
DateOnly | 실수 | 율리우스 날짜 값 |
DateTime | 실수 | 율리우스 날짜 값 |
DateTimeOffset | 실수 | 율리우스 날짜 값 |
GUID | Blob | |
TimeOnly | 실수 | 일 수 |
TimeSpan | 실수 | 일 수 |
command.CommandText =
@"
SELECT count(*)
FROM task
WHERE finished IS NULL
AND julianday('now') - julianday(started) > $expected
";
// Convert TimeSpan to days instead of text
command.Parameters.AddWithValue("$expected", expected).SqliteType = SqliteType.Real;
출력 매개 변수
SQLite는 출력 매개 변수를 지원하지 않습니다. 대신 쿼리 결과의 값을 반환합니다.
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET