It looks good Kreij! I see you have put a lot of time into this project. I'd like to make a small suggestion.. I would put a button above on the right side of the DataGrid to turn off/on allowupdate, allowDelete, and AllowAddNew. So, when someone is scrolling through there keys they don't accidently change something. I would add a messagebox or MsgBox to inform the user they enabled or disabled user changes inside the DataGrid as well. Oh and I know you know this, but I'll say it for anyone here to learn. You can create a click event to the "Commit" button to enable those settings and disable once the new save data has been saved. You can also do more stuff like change the DataGrid OFF/On button text to red when it's off and green when it's on. This is just a good visual notification for the user. EDIT: I said Save button.. I meant the Commit button.. Also, I noticed whenever you type directly into the DataGrid then change rows then back it crashes the app with an unhandled exception. See Below. Code: ************** Exception Text ************** System.NullReferenceException: Object reference not set to an instance of an object. at Key_Z.Form1.passwordsDataGridView_CellClick(Object sender, DataGridViewCellEventArgs e) at System.Windows.Forms.DataGridView.OnCellClick(DataGridViewCellEventArgs e) at System.Windows.Forms.DataGridView.OnMouseClick(MouseEventArgs e) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.DataGridView.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) I would turn off the allowAddNew until the user clicked, "Commit" or wrap the code in a, "try... catch".