I am trying to fetch a phone number from a database and input it into an Tkinter entry field

I have a database already built, and I am trying to have the user input the first and last name on the GUI and then it would return the phone number associated with it. However, I cannot get the phone number to be shown in the read-only entry field. Below is the code:

import tkinter as tk
from tkinter import *
from tkinter import messagebox

#Define window
root = tk.Tk()

# Make labels
fName = Label(root, text="First Name").grid(row=0, column=0)
lName = Label(root, text="Last Name").grid(row=0, column=2)
Phone = Label(root, text="Phone Number -->").grid(row=1, column=2)

# Make entry fields
fNameStr = StringVar()
lNameStr = StringVar()

e1 = Entry(root, textvariable=fNameStr, width=20).grid(row=0, column=1)
e2 = Entry(root, textvariable=lNameStr,width=20).grid(row=0, column=3)
e3 = Entry(root, width=20, state=DISABLED).grid(row=1, column=3)

def findContact():
    import sqlite3
    conn = sqlite3.connect('ContactsDB3.db')
    c = conn.cursor()

    # ensure fName is a string
    fName = fNameStr.get()
    str_fName = str(fName)
    if not str_fName.isalpha():
        messagebox.showerror("ERROR", "ERROR. First name must be a string")
        raise Exception("ERROR. First name must be a string.")

    # ensure lName is a string
    lName = lNameStr.get()
    str_lName = str(lName)
    if not str_lName.isalpha():
        messagebox.showerror("ERROR", "ERROR. Last name must be a string")
        raise Exception("ERROR. Last name must be a string.")
    sql = ("SELECT PhoneNumber FROM Contacts WHERE FirstName = ? AND LastName = ?")
    c.execute(sql, (str_fName, str_lName))
    result = c.fetchone()
    e3.insert(END, result)
# Create and insert Submit button
Button(root, text="Submit", command=findContact).grid(row=1, column=0)


I inserted a print statement earlier to see if the code was even capable of fetching the phone number, and it gave me the correct result; the problem seems to arise when I try to insert the result into the entry field. I am given the error:

Exception in Tkinter callback Traceback (most recent call last):
File "C:\Users\hakth\AppData\Local\Programs\Python\Python39\lib\tkinter_init_.py", line 1892, in call return self.func(*args) File "C:\Users\hakth\Desktop\Python_II_2021\Assignment5\Assignment_5.py", line 45, in findContact e3.insert(END, result) AttributeError: 'NoneType' object has no attribute 'insert'

So e3.insert(END, result) has an attribute error and I do not understand how to alleviate the issue. I was thinking that the result value needed to be changed to an actual string so that I could insert it, but wouldn't the "result" already be a string if it's taken from the database where the column is a VARCHAR? I just need some direction here, thank you.

How many English words
do you know?
Test your English vocabulary size, and measure
how many words do you know
Online Test
Powered by Examplum