public static void MDBCreateTable(string MDBAddress, string TableName,string Word,int t) //2建表和字段函数
{
ADOX.Catalog catalog = new Catalog();
ADODB.Connection cn = new ADODB.Connection();
cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + MDBAddress + ";", null, null, -1);
catalog.ActiveConnection = cn;
ADOX.Table table = new ADOX.Table();
table.Name = TableName;
*****
int i;
for (i = 0; i<t; i++)
{
string j = i.ToString();
table.Columns.Append(Word + j, DataTypeEnum.adVarWChar, 16); //Age
}
*****
catalog.Tables.Append(table);
cn.Close();
}
见代码中*****之间的一部分,自己把插字段函数剥离出来的话,table.Columns.Append()需要table对象,但是table在建表函数里,不知道怎么实现?请求大神解答!
------解决思路----------------------
你可以试着从ADOX.Table table = new ADOX.Table();这一行开始提取到一个静态方法,如
static T CreateTable<T>(参数列表) where T : Table,new()
{
var table = new T();
for()
{
}
return table;
}