Exemple #1
0
        internal void UpdateRow(string fileName, int id, FxRecordBuffer changeBuffer)
        {
            var initSubQuery = "SET ";
            var subQuery     = initSubQuery;
            int bufferSize   = changeBuffer.Count;
            int counter      = 0;

            foreach (var field in changeBuffer)
            {
                counter++;
                subQuery += $"{field.Key} = '{field.Value}'";
                if (counter < bufferSize)
                {
                    subQuery += ", ";
                }
            }
            if (subQuery != initSubQuery)
            {
                using (_connection)
                {
                    var query = $"UPDATE {fileName} "
                                + subQuery
                                + $" WHERE id = {id}";
                    _connection.Open();
                    DbCommand command = CreateCommand(query);

                    command.ExecuteNonQuery();
                    _connection.Close();
                }
            }
        }
        private void UpdateRow()
        {
            bool isChanged    = false;
            var  changeBuffer = new FxRecordBuffer();

            foreach (var field in CurrentRecord)
            {
                if (field.Value.ChangedValue != null)
                {
                    isChanged = true;
                    changeBuffer[field.Key] = field.Value.ChangedValue.ToString();
                }
            }
            if (isChanged)
            {
                FxDataAdapter.Instance.UpdateRow(FileName, CurrentId(), changeBuffer);
            }
        }