2012-07-19 4 views
0

SQLite에서 테이블/열을 동적으로 생성하는 데 사용할 수있는 클래스를 개발하려고합니다. 나는 다음과 같이 내 수업을 만들었습니다클래스 객체의 열거 형 액세스

public class NewColumns 
{ 
    public string ClmName; 

    public Types NewType { get; set; } 

    public void SetName(string NewColumn) 
    { 
     ClmName = NewColumn; 
    } 
} 

public enum Types 
{ 
    INTEGER = 0, 
    REAL = 1, 
    NUMERIC = 2, 
    TEXT = 3, 
    BLOB = 4, 
} 

public static bool CreateTable(string DBPath, string TableName, params NewColumns ClumnName) 
{ 
    bool succ = false; 
    mDBcon.ConnectionString = "Data Source=" + DBPath + ".db3"; 
    mDBcon.Open(); 
    cmd = new SQLiteCommand(mDBcon); 
    cmd.CommandText = "CREATE TABLE IF NOT EXISTS " + TableName + " (ISBN VARCHAR(15), Tag VARCHAR(15));"; 
    cmd.ExecuteNonQuery(); 
    return succ; 
} 
이 같은 클래스에 나의 새로운 값을 전달하고 싶습니다

: 내 열거 값을 인식하지 위의 코드에

clsSqlite.CreateTable("test", "newTable", new clsSqlite.NewColumns { ClmName = "", NewType.INTEGER }); 

그러나 "뉴 타입" 도움에 미리

잘못된 초기화 멤버 선언적

감사 : 내가 열거 값 'INTEGER'수동으로 입력하면 그 나에게 다음과 같은 오류를 제공합니다.

감사합니다.

답변

2
clsSqlite.CreateTable(
    "test", 
    "newTable", 
    new clsSqlite.NewColumns { ClmName = "", NewType = Types.INTEGER }); 

NewType는, 열거는 조언에 대한 Types

+0

완벽, 내 어리석은 실수, 잘 작동합니다. 감사. 한 가지 더 방정식을 가지고 당신이 나를 도울 수 enumValue.ToString() 메서드를 사용하여 enume 값을 검색 할 수 있으면 감사하겠습니다, 그것은 잘 작동하지만 안전하거나 diffident 메서드를 사용해야합니까? – sam

+0

나는 그것이 괜찮다고 생각한다. 그러나 이것은 열거 형의 * value *를 반환하지는 않지만 그 이름 * –

0

클래스 정의 외부에서 열거 형을 이동하면 충분합니다.

열거 형에 대해 다른 이름을 사용하는 것이 좋습니다. 나중에 다른 사람들과 혼동을 일으킬 수 있습니다.

또한 변수를 속성으로 변경하십시오.

+0

덕분이라고 재산의 이름, 그 모든 잘 작동하고, 나는 또한 유형의 이름을 변경했습니다. – sam