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 });

但是上面代码中的“NewType”不能识别我的枚举值,如果我手动输入枚举值“INTEGER”,它会给我以下错误:

无效的初始化程序成员声明

在此先感谢您的帮助。

问候,

4

2 回答 2

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

NewType是您的属性的名称,枚举被称为Types

于 2012-07-19T11:27:32.330 回答
0

将枚举移到类定义之外,你会没事的。

您可以考虑为您的枚举使用除 Types 之外的其他名称,因为它可能会在将来让您和其他人感到困惑。

并将您的变量更改为属性。

于 2012-07-19T11:26:46.860 回答