为表[name]的ColumnCollection添加对象集合失败

时间:2010-08-13 23:17:03

标签: c# sql-server

我有以下代码:

IEnumerable<Table> tables = dbtables.ToList()
                                    .Where(x => x.Name.StartsWith("PartStats"));

 foreach (var tbl in tables)
 {
    Table JoinTable = new Table(db, "ProductMaterial");
    JoinTable.Columns.Add(tbl.Columns[0]);

    string tblName = tbl.Columns[0].Name;
    string script =
                @"ALTER TABLE [dbo].[ProductMaterial]  
                   WITH CHECK ADD  CONSTRAINT [FK_" + tbl.Name +
                "] PRIMARY KEY([" + s;
    string script2 = @"]) REFERENCES [dbo].[" + tbl.Name + "] ([" + tblName + "])" ;
    string newscr = string.Concat(script, script2);
    AddPrimaryKey(tbl, newscr);

这曾经有用,但是现在当我运行它时,我收到了这个错误:

  

“为表ProductMaterial的ColumnCollection添加对象集合失败”。

AddPrimaryKey()只是在SQL Server上执行脚本,没问题。问题在于前面的代码调用。

服务器已启用,我正在使用SQL Server的本地管理员帐户(我的Windows帐户是SQL Server的管理员)。

由于

1 个答案:

答案 0 :(得分:0)

也许在检查表中是否已经存在列时调用该调用。

if (!JoinTable.Columns.Contains(tbl.Columns[0].Name)
{
    JoinTable.Columns.Add(tbl.Columns[0]);
}

您是否尝试添加名为“ProductMaterial”的多个Table