public bool AddTemplate(IObjectTemplate template) { try { IObjectTemplate objectTemplate = _templates.FirstOrDefault(c => c.Name == template.Name); if (objectTemplate == null) { MessageService.Current.Warn("该模板已经存在,请更换名字!"); return(false); } if (_workspace == null) { Connect(); } ITable pTable = _workspace.OpenTable("YT_TEMPLATE_FEATURECLASS"); IWorkspaceEdit pWksEdit = _workspace as IWorkspaceEdit; pWksEdit.StartEditing(true); pWksEdit.StartEditOperation(); IRow pRow = pTable.CreateRow(); template.UpdateRow(pRow); //pTable = _workspace.OpenTable("YT_TEMPLATE_FIELD"); //int tmpIndex = pTable.FindField("TemplateName"); //foreach (IYTField ytField in template.Fields) //{ // pRow = pTable.CreateRow(); // pRow.set_Value(tmpIndex,template.Name); // ytField.UpdateRow(pRow); //} pWksEdit.StopEditOperation(); pWksEdit.StopEditing(true); _templates.Add(template); ComReleaser.ReleaseCOMObject(pTable); DisConnect(); return(true); } catch (Exception ex) { MessageService.Current.Warn("系统发生错误:" + ex.Message); return(false); throw; } }
public bool SaveTemplate(IObjectTemplate template) { try { if (_workspace == null) { Connect(); } ITable pTable = _workspace.OpenTable("YT_TEMPLATE_FEATURECLASS"); IWorkspaceEdit pWksEdit = _workspace as IWorkspaceEdit; pWksEdit.StartEditing(true); pWksEdit.StartEditOperation(); IRow pRow; int oldID = template.ID; if (oldID > 0) { pRow = pTable.GetRow(template.ID); } else { pRow = pTable.CreateRow(); } template.UpdateRow(pRow); //pTable = _workspace.OpenTable("YT_TEMPLATE_FIELD"); //if (oldID > 0) //{ // //删除数据库中原有的字段定义 // IQueryFilter filter=new QueryFilterClass(); // filter.WhereClause = "TemplateName='" + template.Name + "'"; // ICursor pCursor = pTable.Search(filter, false); // pRow = pCursor.NextRow(); // while (pRow != null) // { // pRow.Delete(); // pRow = pCursor.NextRow(); // } // ComReleaser.ReleaseCOMObject(pCursor); //} //int tmpIndex = pTable.FindField("TemplateName"); //foreach (IYTField ytField in template.Fields) //{ // pRow = pTable.CreateRow(); // pRow.set_Value(tmpIndex, template.Name); // ytField.UpdateRow(pRow); //} pWksEdit.StopEditOperation(); pWksEdit.StopEditing(true); if (oldID <= 0) { _templates.Add(template); } ComReleaser.ReleaseCOMObject(pTable); DisConnect(); return(true); } catch (Exception ex) { MessageService.Current.Warn("系统发生错误:" + ex.Message); return(false); throw; } }