/// <summary> /// Writes the link information. /// </summary> /// <param name="statement"> /// The statement. /// </param> /// <param name="linkInfo"> /// The link information. /// </param> /// <param name="linkFieldStatement"> /// The link field statement. /// </param> /// <returns> /// The <see cref="int"/>. /// </returns> public int WriteLinkInfo(DatabaseStatement statement, LinkInfo linkInfo, DatabaseStatement linkFieldStatement) { if (statement == null) { return(0); } try { statement.Reset(); statement.Bind(1, linkInfo.InfoAreaId); statement.Bind(2, linkInfo.TargetInfoAreaId); statement.Bind(3, linkInfo.LinkId); statement.Bind(4, linkInfo.RelationType); statement.Bind(5, linkInfo.ReverseLinkId); statement.Bind(6, linkInfo.SourceFieldId); statement.Bind(7, linkInfo.DestFieldId); statement.Bind(8, linkInfo.LinkFlag); statement.ExecuteNonQuery(); var linkFieldCount = linkInfo.LinkFieldCount; for (var i = 0; i < linkFieldCount; i++) { linkFieldStatement.Reset(); linkFieldStatement.Bind(1, linkInfo.InfoAreaId); linkFieldStatement.Bind(2, linkInfo.TargetInfoAreaId); linkFieldStatement.Bind(3, linkInfo.LinkId); linkFieldStatement.Bind(4, i); linkFieldStatement.Bind(5, linkInfo.GetSourceFieldIdWithIndex(i)); linkFieldStatement.Bind(6, linkInfo.GetDestinationFieldIdWithIndex(i)); linkFieldStatement.Bind(7, linkInfo.GetSourceValueWithIndex(i)); linkFieldStatement.Bind(8, linkInfo.GetDestinationValueWithIndex(i)); linkFieldStatement.ExecuteNonQuery(); } return(0); } catch (Exception) { return(1); } }