MySQL Connector/Net을 사용하고 있으며 런타임에 이름이 지정 될 테이블에 대해 쿼리를 작성하려고합니다. 난 당신이 쿼리에서 테이블 이름을 매개 변수화 할 수 있다고 생각하지 않기 때문에, 오히려 문자열보다 열거를 사용런타임시 테이블 이름을 동적으로 선택하는 가장 좋은 방법은 무엇입니까?
public class DataAccess
{
public enum LookupTable
{
Table1,
Table2,
Table3
}
public int GetLookupTableRowCount(LookupTable table)
{
string tableName = string.Empty;
switch (table)
{
case LookupTable.Table1:
tableName = "table_1";
break;
case LookupTable.Table2:
tableName = "table_2";
break;
case LookupTable.Table3:
tableName = "table_3";
break;
default:
throw new ApplicationException("Invalid lookup table specified.");
}
string commandText = string.Concat("SELECT COUNT(*) FROM ", tableName);
// Query gets executed and function returns a value here...
}
}
:
이 예는 (안 테스트) 내 머리 위로 떨어져이다 함수 매개 변수는 SQL injection의 가능성을 제한합니다.
좋은 접근 방법 인 것 같습니까? 더 좋은 방법이 있습니까?
.net은 열거 형에 추가 속성을 추가 할 수 있습니까? – Jherico
Table1 = "table_1"과 같은 의미입니까? 그렇다면 int, long과 같은 정수 유형 만 사용할 수 있습니다. –