7,539
社区成员
发帖
与我相关
我的任务
分享
总算在网上找到一点参考线索。
http://social.technet.microsoft.com/Forums/zh-CN/sqldataaccess/thread/fe90b321-f6e5-4f88-965e-0633ea56fae2
问题解决,修正后的代码如下:
ADOX::Catalog^ cat = gcnew ADOX::Catalog();
cat->Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbName + ";"); //创建数据库
ADOX::Table^ tab = gcnew ADOX::Table(); //创建数据表Data
tab->Name = "Data";
//创建新列new_col
ADOX::Column^ col = gcnew ADOX::Column();
col->default = "new_col";
col->Type = ADOX:: DataTypeEnum:: adWChar;
col->DefinedSize = 255;
//加入列到tab
tab->default->Append(col, ADOX::DataTypeEnum::adWChar, 255);
//加入表到cat,关键一步
cat->default->Append(tab);
//检查是否成功?不报错即成功
ADOX::Table^ tab2 = cat["Data"];
ADOX::Column^ col2 = tab["new_col"];
用这个还是没效果哦,仍然是创建了一个空数据库。
我是想在数据库里创建一个表,然后再创建N个列,在网上找了半天都是C#的例子,但我得用C++/cli完成,
C#的代码转到cli中来发现玩不出来了,通过对象浏览器是可以看到TableClass是有Columns这个接口的,但实际上又不能用。
真够郁闷的,折腾了2天还是没招