/// <summary> /// 保存方案表结构关系 /// </summary> /// <param name="sqlSchemaId"></param> /// <param name="tableRelationEntity"></param> public static void saveTableRelation(String sqlSchemaId, TableRelationEntity tableRelationEntity, DataGridView dgv, String selectValue) { XmlDocument doc = new XmlDocument(); doc.Load(MsqlConfigXmlPath); XmlNode nodeSchema = doc.SelectSingleNode("//SqlSchema[@ID='" + sqlSchemaId + "']"); XmlNode nodeTableRelation = nodeSchema.SelectSingleNode("TableRelation"); if (nodeTableRelation == null) { nodeTableRelation = doc.CreateElement("TableRelation"); nodeSchema.AppendChild(nodeTableRelation); } //删除所有节点重新建立关系 XmlNode nodeTableRelationDetail = nodeTableRelation.SelectSingleNode("DetialRelation[@ID='" + tableRelationEntity.Id + "']"); if (nodeTableRelationDetail != null) { nodeTableRelationDetail.ParentNode.RemoveChild(nodeTableRelationDetail); } nodeTableRelationDetail = doc.CreateElement("DetialRelation"); nodeTableRelation.AppendChild(nodeTableRelationDetail); XmlElement elementTableRelationDetail = nodeTableRelationDetail as XmlElement; elementTableRelationDetail.SetAttribute("ID", tableRelationEntity.Id); elementTableRelationDetail.SetAttribute("FTableSpaceName", tableRelationEntity.FTableSpaceName); elementTableRelationDetail.SetAttribute("FTableName", tableRelationEntity.FTableName); elementTableRelationDetail.SetAttribute("FColumnName", tableRelationEntity.FColumnName); elementTableRelationDetail.SetAttribute("LTableSpaceName", tableRelationEntity.LTableSpaceName); elementTableRelationDetail.SetAttribute("LTableName", tableRelationEntity.LTableName); elementTableRelationDetail.SetAttribute("LColumnName", tableRelationEntity.LColumnName); XmlCDataSection cData = doc.CreateCDataSection(string.Format("{0}.{1}.{2}={3}.{4}.{5}", tableRelationEntity.FTableSpaceName, tableRelationEntity.FTableName, tableRelationEntity.FColumnName, tableRelationEntity.LTableSpaceName, tableRelationEntity.LTableName, tableRelationEntity.LColumnName)); elementTableRelationDetail.AppendChild(cData); doc.Save(MsqlConfigXmlPath); LoadSchemaTableRelation(sqlSchemaId, doc, dgv, selectValue); }
private void btnSave_Click(object sender, EventArgs e) { try { if (cmbFColumnName.Text == "") { MessageBox.Show(@"请选择关联前字段信息", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (cmbLColumnName.Text == "") { MessageBox.Show(@"请选择关联后字段信息", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } TableRelationEntity tableRelationEntity = new TableRelationEntity(); if (lblGUID.Text == "") { lblGUID.Text = Guid.NewGuid().ToString(); } tableRelationEntity.Id = lblGUID.Text; tableRelationEntity.FTableSpaceName = cmbFTableSpaceName.SelectedValue.ToString(); tableRelationEntity.FTableName = cmbFTableName.SelectedValue.ToString(); tableRelationEntity.FColumnName = cmbFColumnName.SelectedValue.ToString(); tableRelationEntity.LTableSpaceName = cmbLTableSpaceName.SelectedValue.ToString(); tableRelationEntity.LTableName = cmbLTableName.SelectedValue.ToString(); tableRelationEntity.LColumnName = cmbLColumnName.SelectedValue.ToString(); if (tableRelationEntity.FTableSpaceName.Equals(tableRelationEntity.LTableSpaceName) && tableRelationEntity.FTableName.Equals(tableRelationEntity.LTableName) && tableRelationEntity.FColumnName.Equals(tableRelationEntity.LColumnName)) { MessageBox.Show("不同关联相同的字段!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else if (tableRelationEntity.FTableSpaceName.Equals(tableRelationEntity.LTableSpaceName) && tableRelationEntity.FTableName.Equals(tableRelationEntity.LTableName)) { MessageBox.Show("不能关联同一张表的字段!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } SqlConfig.saveTableRelation(sqlSchemaId, tableRelationEntity, dgvTableRealtion, lblGUID.Text); } catch (Exception er) { MessageBox.Show(er.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }