为啥主键设置不上呢?
我在WPF中用ADOX连接Access数据库,创建了一张表,试图在表上设置一个主键,为啥数据表中看不到id被标识为主键呢?设置代码不对么?请大侠指点!
ADOX.CatalogClass cat = new ADOX.CatalogClass();
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbName +";");
ADOX.TableClass tbl = new ADOX.TableClass();
tbl.ParentCatalog = cat;
tbl.Name="MyTable";
//增加一个自动增长的字段
ADOX.ColumnClass col = new ADOX.ColumnClass();
col.ParentCatalog = cat;
col.Type=ADOX.DataTypeEnum.adInteger; // 必须先设置字段类型
col.Name = "id";
col.Properties["Jet OLEDB:Allow Zero Length"].Value= false;
col.Properties["AutoIncrement"].Value= true;
tbl.Columns.Append (col,ADOX.DataTypeEnum.adInteger,0);
//增加一个文本字段
ADOX.ColumnClass col2 = new ADOX.ColumnClass();
col2.ParentCatalog = cat;
col2.Name = "Description";
col2.Properties["Jet OLEDB:Allow Zero Length"].Value= false;
tbl.Columns.Append (col2,ADOX.DataTypeEnum.adVarChar,25);
//设置主键
tbl.Keys.Append("PrimaryKey",ADOX.KeyTypeEnum.adKeyPrimary,"id","","");
cat.Tables.Append (tbl);
tbl=null;
cat = null;
[解决办法]
你的这个ADOX是第三方的数据库封装dll吧
如果这个dll原来可以成功设置主键的话,说明是你的程序问题。
如果不是,则说明这个ADOX本身可能有问题哦。
[解决办法]
这玩意好像和silverlight WPF都没多大关系!你最好去C#专区去问问,那里的人多估计有用过这个dll的