매개 변수가있는 쿼리 (C# OleDB 라이브러리)의 구문을 상기 시켰고 처음 우연히 발견 한 몇 가지 예가 간단했지만 구문에 대해 알아 냈습니다.쿼리에 매개 변수를 추가하는 구문
sqlCommand.CommandText = "SELECT * FROM Customer WHERE Name LIKE @Name;";
sqlCommand.Parameters.AddWithValue("@Name", "%" + searchString + "%");
매개 변수로 대체 될 내용을 식별하기위한 SQL 형식이 내가 일반적으로 사용했던 것과 다릅니다. '@'
sqlCommand.CommandText = "SELECT * FROM Customer WHERE [Name] LIKE :Name;";
sqlCommand.Parameters.AddWithValue(":Name", "%" + searchString + "%");
지금, 두 예제 내가 함께보고 있었다 나는 일반적으로 단지 액세스 및 Oracle 작업 SQL 서버의 예에서 있었다 : 나는 일반적으로 콜론과 대괄호를 사용합니다. 하지만 '@'를 사용하는 다른 액세스 예제도 보았습니다.
실제로 어떤 차이가 있습니까, 아니면 그냥 스타일일까요? 적어도 (액세스를 사용하여) 엔진이 매개 변수 이름을 무시하고 나열된 순서대로 매개 변수를 삽입한다는 점을 상기합니다. (?)
는 OLE DB.NET Framework 데이터 공급자가 물음표로 표시됩니다 위치 매개 변수 대신 명명 된 매개 변수를 사용
은 내가 MSDN에서 확인합니다.
이것은 매개 변수 이름/구문이 중요하지 않으며 무시된다는 견해를 강화합니다. 그러나 이것이 정확하다하더라도 다른 프레임 워크에 대한 견고 함을 제공하는 좋은 습관이 있습니까?
OLEDB에서 매개 변수에 대한 sigil은 (예약 문자를 사용하지 않는 한) 중요하지 않으며 매개 변수를 사용하기위한 스타일을 정의합니다. 쿼리 내에 매개 변수 이름을 제공하는 것이 좋습니다.하지만 사실 모든 쿼리 매개 변수는 첫 번째로 선언 된 매개 변수에서 처리됩니다. –