Mar-06-2021, 08:00 PM
Thanks for the help deanhystad. I created another function to clear the data out of the text boxes and I think I understand that how that is working now.
At this point the issue is the sql statement and I have searched and tried at least 10 different ways of writing it and it just won't input the data for some reason. Tried different placeholders for the values.
Do you have any idea what might be wrong with my SQL statement? I placed the print functions there just to make sure I was receiving the data from the textboxes and I am.
At this point the issue is the sql statement and I have searched and tried at least 10 different ways of writing it and it just won't input the data for some reason. Tried different placeholders for the values.
Do you have any idea what might be wrong with my SQL statement? I placed the print functions there just to make sure I was receiving the data from the textboxes and I am.
from PyQt5.QtWidgets import (QLabel, QPushButton, QLineEdit, QApplication, QCheckBox, QMainWindow, QWidget, QVBoxLayout, QTabWidget, QStatusBar) import pyodbc import sys class mainWindow(QMainWindow): def __init__(self): super().__init__() self.resize(385, 323) self.setWindowTitle("HARDWARE | SOFTWARE MANAGER") self.statusBar = QStatusBar() self.setStatusBar(self.statusBar) self.tabForm = QTabWidget() self.tabForm.addTab(hardwareTab(), "HARDWARE") self.tabForm.addTab(softwareTab(), "SOFTWARE") self.setCentralWidget(self.tabForm) class hardwareTab(QWidget): def __init__(self): super().__init__() self.snLabel = QLabel("SERIAL NUMBER") self.snTextBox = QLineEdit() self.modelLabel = QLabel("MODEL") self.modelTextBox = QLineEdit() self.userLabel = QLabel("USER") self.userTextBox = QLineEdit() self.enButton = QPushButton("ENTER NEW HARDWARE") self.cfButton = QPushButton("CLEAR FIELDS") self.seButton = QPushButton("SEARCH/EDIT HARDWARE") self.activeCheckbox = QCheckBox("ACTIVE") self.testTextbox = QLineEdit() layout = QVBoxLayout(self) layout.addWidget(self.snLabel) layout.addWidget(self.snTextBox) layout.addWidget(self.modelLabel) layout.addWidget(self.modelTextBox) layout.addWidget(self.userLabel) layout.addWidget(self.userTextBox) layout.addWidget(self.activeCheckbox) layout.addWidget(self.enButton) layout.addWidget(self.cfButton) layout.addWidget(self.seButton) layout.addWidget(self.testTextbox) self.enButton.clicked.connect(lambda: enterNewHardware(self)) self.cfButton.clicked.connect(lambda: clearHardwareFields(self)) class softwareTab(QWidget): def __init__(self): super().__init__() self.snLabel = QLabel("SERIAL NUMBER / KEY") self.snTextbox = QLineEdit() self.nameLabel = QLabel("APPLICATION NAME") self.nameTextBox = QLineEdit() self.userLabel = QLabel("USER") self.userTextBox = QLineEdit() self.enButton = QPushButton("ENTER NEW SOFTWARE") self.cfButton = QPushButton("CLEAR FIELDS") self.seButton = QPushButton("SEARCH/EDIT SOFTWARE") layout = QVBoxLayout(self) layout.addWidget(self.snLabel) layout.addWidget(self.snTextbox) layout.addWidget(self.nameLabel) layout.addWidget(self.nameTextBox) layout.addWidget(self.userLabel) layout.addWidget(self.userTextBox) layout.addWidget(self.enButton) layout.addWidget(self.cfButton) layout.addWidget(self.seButton) def enterNewHardware(fields): serial_number = fields.snTextBox.text() model_name = fields.modelTextBox.text() user_name = fields.userTextBox.text() test_textbox = fields.testTextbox.text() print(serial_number) print(model_name) print(user_name) print(test_textbox) azureServer = "pythonserver5874.database.windows.net" azureDB = "inventoryDatabase" userName = "na" password = "na" driver = "{ODBC Driver 17 for SQL Server}" connectionString = f"DRIVER={driver};SERVER={azureServer};PORT=1433;DATABASE={azureDB};UID={userName};PWD={password}" conn = pyodbc.connect(connectionString) cursor = conn.cursor() sql_statement = '''INSERT INTO inventoryDatabase.dbo.Hardware (serialNumber, modelName, userName, machineActive) VALUES (?, ?, ?, ?)''' data = (serial_number, model_name, user_name, test_textbox) cursor.execute(sql_statement, data) conn.commit() def clearHardwareFields(fields): fields.snTextBox.clear() fields.modelTextBox.clear() fields.userTextBox.clear() fields.testTextbox.clear() if __name__ == "__main__": APP = QApplication(sys.argv) WINDOW = mainWindow() WINDOW.show() sys.exit(APP.exec_())