我正在尝试开发一个可以用来在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',则会给出以下错误:
无效的初始化成员声明
提前感谢您的帮助。
此致
答案 0 :(得分:2)
clsSqlite.CreateTable(
"test",
"newTable",
new clsSqlite.NewColumns { ClmName = "", NewType = Types.INTEGER });
NewType
是您的媒体资源的名称,枚举名称为Types
答案 1 :(得分:0)
将枚举移到类定义之外,你会没事的。
您可以考虑为枚举使用其他名称而不是类型,因为将来可能会让您和其他人感到困惑。
并将您的变量更改为属性。