diff --git a/sohstationviewer/view/db_config/channel_dialog.py b/sohstationviewer/view/db_config/channel_dialog.py
index 4f49ca40560266bfe6ee7d74223d9695d089570a..2295442b5b7b422d5babfbe2fbaf1998e41c0d34 100755
--- a/sohstationviewer/view/db_config/channel_dialog.py
+++ b/sohstationviewer/view/db_config/channel_dialog.py
@@ -85,7 +85,6 @@ class ChannelDialog(UiDBInfoDialog):
         """
         old_data_type = self.data_type
         self.data_type = self.data_type_combo_box.currentText()
-        self.update_data_table_widget_items()
         self.delete_sql_supplement = f" AND dataType='{self.data_type}'"
         self.insert_sql_template = self.insert_sql_template.replace(
             old_data_type, self.data_type
@@ -113,6 +112,7 @@ class ChannelDialog(UiDBInfoDialog):
 
         if not self.has_changes():
             self.get_data_type_from_selector()
+            self.update_data_table_widget_items()
             return
 
         unsaved_changes_prompt = (
@@ -132,6 +132,7 @@ class ChannelDialog(UiDBInfoDialog):
                 self.untrack_changes()
                 pass
             self.get_data_type_from_selector()
+            self.update_data_table_widget_items()
         else:
             # Cover both the case where the cancel button is pressed and the
             # case where the exit button is pressed.
diff --git a/sohstationviewer/view/db_config/db_config_dialog.py b/sohstationviewer/view/db_config/db_config_dialog.py
index e31b7a04ef49376c075e3b1e239b6a1b80b07c0c..0454ab696f313ed76daefaea92f66d64f9932fab 100755
--- a/sohstationviewer/view/db_config/db_config_dialog.py
+++ b/sohstationviewer/view/db_config/db_config_dialog.py
@@ -316,10 +316,16 @@ class UiDBInfoDialog(OneWindowAtATimeDialog):
             self.save_changes_btn.clicked.connect(lambda: self.save_changes())
             h_layout.addWidget(self.save_changes_btn)
 
-        self.close_btn = QtWidgets.QPushButton(self, text='CLOSE')
-        self.close_btn.setFixedWidth(300)
-        self.close_btn.clicked.connect(self.close)
-        h_layout.addWidget(self.close_btn)
+            self.reset_btn = QtWidgets.QPushButton(self, text='RESET')
+            reset_btn_style_sheet = self.reset_btn.styleSheet() + (
+                'QPushButton:enabled {'
+                '   color: #FF474C'
+                '}\n'
+            )
+            self.reset_btn.setStyleSheet(reset_btn_style_sheet)
+            self.reset_btn.setFixedWidth(300)
+            self.reset_btn.clicked.connect(self.reset_changes)
+            h_layout.addWidget(self.reset_btn)
         return h_layout
 
     def create_data_table_widget(self):
@@ -601,6 +607,21 @@ class UiDBInfoDialog(OneWindowAtATimeDialog):
         """
         pass
 
+    def reset_changes(self):
+        if self.has_changes():
+            reset_prompt = ('Do you want to reset all changes you made? All '
+                            'unsaved changes will be discarded.')
+            choice = QMessageBox.question(self, 'Resetting changes',
+                                          reset_prompt,
+                                          QMessageBox.StandardButton.Reset |
+                                          QMessageBox.StandardButton.Cancel
+                                          )
+            if choice == QMessageBox.StandardButton.Cancel:
+                self.data_table_widget.setUpdatesEnabled(True)
+                return False
+            self.untrack_changes()
+            self.update_data_table_widget_items()
+
     def has_changes(self):
         """
         Check whether the user has made a change in the data table.