다음을 통해 공유


매개 변수

매개 변수는 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는 출력 매개 변수를 지원하지 않습니다. 대신 쿼리 결과의 값을 반환합니다.

참고 항목