Ungültiger Objektname 'Employee' - VS Zeigt aber keinen Error an



  • Hallo zusammen,
    Meine Login Methode soll nach Eingabe der E-Mail und Passwort "eingeloggt" werden. Da ich noch am Anfang des Projektes bin simuliere ich das einloggen indem ich alle Daten aus der Datenbank auslese die zur eingegebenen E-Mail und Passwort passen und sie in das Objekt loggedInEmployee packe, indem ich die set Methode für die jeweiligen Employee Variablen aufrufe. Dannach sollen die Daten des eingeloggten Mitarbeiters ausgegeben werden.

    Das Problem:
    mir wird gesagt das der Objektname "Employee" ungültig ist.

    MSSQL-Datenbank:

    CREATE DATABASE Cardealer;
    CREATE TABLE Cars(
    Brand VARCHAR(50) NOT NULL,
    Category VARCHAR(50) NOT NULL,
    Price DECIMAL(10,5) NOT NULL,
    Car_condition VARCHAR(50) NOT NULL,
    Model VARCHAR(50) NOT NULL,
    Number_of_doors TINYINT NOT NULL,
    First_registration SMALLINT NOT NULL,
    Mileage BIGINT NOT NULL,
    Engine_power SMALLINT NOT NULL,
    Fuel VARCHAR(50) NOT Null,
    Gearbox VARCHAR(50) NOT NULL,
    Features TEXT NOT NULL,
    Color VARCHAR(100) NOT NULL,
    Car_ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
    );

    CREATE TABLE Customers(
    Customer_ID SMALLINT NOT NULL IDENTITY(1,1) PRIMARY KEY,
    Surename VARCHAR(100) NOT NULL,
    Firstname VARCHAR(100) NOT NULL,
    Phonenumber INT NOT NULL,
    E_Mail VARCHAR(100),
    Date_of_birth DATE NOT NULL,
    Country VARCHAR(50) NOT NULL,
    City VARCHAR(50) NOT NULL,
    Postcode INT NOT NULL,
    Street VARCHAR(100) NOT NULL,
    Housenumber VARCHAR(5) NOT NULL,
    License_plate VARCHAR(11) NOT NULL
    );

    CREATE TABLE Employees(
    Employee_ID SMALLINT NOT NULL IDENTITY(1,1) PRIMARY KEY,
    Surename VARCHAR(100) NOT NULL,
    Firstname VARCHAR(100) NOT NULL,
    Phonenumber INT NOT NULL,
    E_Mail VARCHAR(100) NOT NULL,
    Date_of_birth DATE NOT NULL,
    City VARCHAR(50) NOT NULL,
    Postcode INT NOT NULL,
    Street VARCHAR(100) NOT NULL,
    Housenumber VARCHAR(5) NOT NULL,
    Contractnumber SMALLINT NOT NULL,
    Network_rights VARCHAR(50) NOT NULL,
    [Password] VARCHAR(50) NOT NULL,
    Salary INT NOT NULL,
    Sold_Cars SMALLINT
    );

    MainClass.cs:

    using System;
    
    namespace CardealerManagement
    {
        class MainClass
        {
            static void Main(string[] args)
            {
                MSSQLworker mssqlworker = new MSSQLworker();
    
    
                Console.WriteLine("Willkommen im Autohaus Management Tool\n\nWaehlen Sie die gewuenschte Option aus:\n");
    
                mssqlworker.UserQuery();
    
                Console.ReadKey();
            }
        }
    }
    

    MSSQLworker:

    using System;
    using System.Data.SqlClient;
    
    namespace CardealerManagement
    {
        class MSSQLworker
        {
            //Method for database connectivity
            private SqlConnection SqlConnector()
            {
                SqlConnection con = new SqlConnection();
                try
                {
                    con.ConnectionString = "Data Source = localhost;" + "Initial Catalog = Cardealer;" + "Integrated Security = true;";
                    con.Open();
                }
                catch (Exception e)
                {
                    Console.WriteLine("Fehler!\n" + e.Message + "\n" + e);
                    con.Close();
                }
    
                return con;
            }
    
            //User-Option choice method
            public void UserQuery()
            {
                bool inputCheck = false;
    
                do
                {
                    Console.WriteLine("1 - Einloggen\n2 - Registrieren");
                    int input = Convert.ToInt32(Console.ReadLine());
    
                    switch (input)
                    {
    
                        case 1:
                            Console.WriteLine("Sie haben Option 1 ausgewaehlt.\nBitte loggen Sie sich mit Ihrer E_Mail Adresse und Ihrem Passwort ein.");
                            inputCheck = true;
                            Login();
                            break;
    
                        case 2:
                            Console.WriteLine("Sie haben Option 2 ausgewaehlt.\nBitte registrieren Sie sich mit den Benoetigten Daten.");
                            inputCheck = true;
                            AddEmployee();
                            break;
                    }
                } while (!inputCheck);
            }
    
            //SQL methods for Employee
            private void AddEmployee()
            {
                bool anotherEmployee = true;
                do
                {
                    Employee employee = new Employee();
    
    
                    Console.WriteLine("Bitte geben Sie die persoenlichen Daten eingeben:\n");
                    Console.WriteLine("Bitte geben Sie den Vornamen ein:");
                    string firstname = Convert.ToString(Console.ReadLine());
                    employee.Firstname = firstname;
    
                    Console.WriteLine("\nBitte geben Sie den Nachnamen ein:");
                    string surename = Convert.ToString(Console.ReadLine());
                    employee.Surename = surename;
    
                    Console.WriteLine("\nBitte geben Sie die Telefonnummer ein:");
                    int phonenumber = Convert.ToInt32(Console.ReadLine());
                    employee.Phonenumber = phonenumber;
    
                    Console.WriteLine("\nBitte geben Sie die Stadt des Wohnortes ein:");
                    string city = Convert.ToString(Console.ReadLine());
                    employee.City = city;
    
                    Console.WriteLine("\nBitte geben Sie die Postleitzahl ein:");
                    int postcode = Convert.ToInt32(Console.ReadLine());
                    employee.Postcode = postcode;
    
                    Console.WriteLine("\nBitte geben Sie die Strasse ein:");
                    string street = Convert.ToString(Console.ReadLine());
                    employee.Street = street;
    
                    Console.WriteLine("\nBitte geben Sie die Hausnummer ein:");
                    string housenumber = Convert.ToString(Console.ReadLine());
                    employee.Housenumber = housenumber;
    
                    Console.WriteLine("\nBitte geben Sie das Geburtsdatum ein:\nFormat: DD-MM-JJJJ");
                    string date_of_birth = Convert.ToString(Console.ReadLine());
                    employee.Date_of_birth = date_of_birth;
    
                    Console.WriteLine("\nBitte geben Sie die Geschaeftlichen Daten ein:");
                    Console.WriteLine("Bitte geben Sie die E-Mail ein:\nFormat: (Vorname.Nachname@Autohaus.de)");
                    string e_mail = Convert.ToString(Console.ReadLine());
                    employee.E_mail = e_mail;
    
                    Console.WriteLine("\nBitte geben Sie die Vertragsnummer ein:\nFormat: XXXX");
                    int contractnumber = Convert.ToInt32(Console.ReadLine());
                    employee.Contractnumber = contractnumber;
    
                    Console.WriteLine("\nBitte geben Sie die Netzwerkrechte ein:\nAdministrator, Benutzer, Buchhaltung");
                    string network_rights = Convert.ToString(Console.ReadLine());
                    employee.Network_rights = network_rights;
    
                    Console.WriteLine("\nBitte geben Sie das Passwort ein:");
                    string password = Convert.ToString(Console.ReadLine());
                    employee.Password = password;
    
                    Console.WriteLine("\nBitte geben Sie das monatliche Gehalt ein:");
                    int salary = Convert.ToInt32(Console.ReadLine());
                    employee.Salary = salary;
    
    
                    Console.WriteLine("\nAlle benoetigten Daten wurden eingegeben.");
                    Console.WriteLine("Moechten Sie noch einen Angestellten registrieren ?\nJ - Ja\nN - Nein");
                    char anotherEmployeeJN = Convert.ToChar(Console.ReadLine());
    
                    if (anotherEmployeeJN == 'J' || anotherEmployeeJN == 'j')
                    {
                        SqlConnection con = SqlConnector();
    
                        try
                        {
                            SqlCommand cmd = new SqlCommand();
                            cmd.CommandText = "INSERT INTO Employees (Surename, Firstname, Phonenumber, E_Mail, Date_of_birth, City, Postcode, Street, Housenumber, Contractnumber, Network_rights, [Password], Salary) " +
                                              "VALUES ('" + employee.Surename + "', '" + employee.Firstname + "', " + employee.Phonenumber + ", '" + employee.E_mail + "', '" + employee.Date_of_birth + "', '" + employee.City + "', " + employee.Postcode + ", '" + employee.Street + "', '" + employee.Housenumber + "', " + employee.Contractnumber + ", '" + employee.Network_rights + "', '" + employee.Password + "', " + employee.Salary + ");";
                            cmd.CommandType = System.Data.CommandType.Text;
                            cmd.Connection = con;
                            SqlDataReader reader = cmd.ExecuteReader();
                            Console.WriteLine("Neuer Mitarbeiter wurde erfolgreich erstellt.");
    
                            con.Close();
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("Fehler!\n" + e.Message);
                            con.Close();
                        }
    
                        anotherEmployee = true;
                    }
                    if (anotherEmployeeJN == 'N' || anotherEmployeeJN == 'n')
                    {
                        anotherEmployee = false;
    
                        SqlConnection con = SqlConnector();
    
                        try
                        {
                            SqlCommand cmd = new SqlCommand();
                            cmd.CommandText = "INSERT INTO Employees (Surename, Firstname, Phonenumber, E_Mail, Date_of_birth, City, Postcode, Street, Housenumber, Contractnumber, Network_rights, [Password], Salary) " +
                                              "VALUES ('" + employee.Surename + "', '" + employee.Firstname + "', " + employee.Phonenumber + ", '" + employee.E_mail + "', '" + employee.Date_of_birth + "', '" + employee.City + "', " + employee.Postcode + ", '" + employee.Street + "', '" + employee.Housenumber + "', " + employee.Contractnumber + ", '" + employee.Network_rights + "', '" + employee.Password + "', " + employee.Salary + ");";
                            cmd.CommandType = System.Data.CommandType.Text;
                            cmd.Connection = con;
                            SqlDataReader reader = cmd.ExecuteReader();
                            Console.WriteLine("Neuer Mitarbeiter wurde erfolgreich erstellt.");
    
                            con.Close();
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("Fehler!\n" + e.Message);
                            con.Close();
                        }
                    }
                } while (anotherEmployee);
            }
    
            private void Login()
            {
                Console.WriteLine("Format: Vorname.Nachname@Autohaus.de\nE-Mail:");
                string tmpEmailInput = Convert.ToString(Console.ReadLine());
    
                Console.WriteLine("Passwort:");
                string tmpPasswordInput = Convert.ToString(Console.ReadLine());
    
                SqlConnection con = SqlConnector();
                Employee loggedInEmployee = new Employee();
    
                try
                {
                    SqlCommand cmd = new SqlCommand();
                    cmd.CommandText = "SELECT * FROM Employee WHERE E_Mail = '" + tmpEmailInput + "' AND Password = '" + tmpPasswordInput + "';";
                    cmd.CommandType = System.Data.CommandType.Text;
                    cmd.Connection = con;
                    SqlDataReader reader = cmd.ExecuteReader();
                    Console.WriteLine("Sie sind jetzt eingeloggt.");
    
                    while (reader.Read())
                    {
                        loggedInEmployee.Employee_ID = (int)reader.GetValue(0);
                        loggedInEmployee.Surename = (string)reader.GetValue(1);
                        loggedInEmployee.Firstname = (string)reader.GetValue(2);
                        loggedInEmployee.Phonenumber = (int)reader.GetValue(3);
                        loggedInEmployee.E_mail = (string)reader.GetValue(4);
                        loggedInEmployee.Date_of_birth = (string)reader.GetValue(5);
                        loggedInEmployee.City = (string)reader.GetValue(6);
                        loggedInEmployee.Postcode = (int)reader.GetValue(7);
                        loggedInEmployee.Street = (string)reader.GetValue(8);
                        loggedInEmployee.Housenumber = (string)reader.GetValue(9);
                        loggedInEmployee.Contractnumber = (int)reader.GetValue(10);
                        loggedInEmployee.Network_rights = (string)reader.GetValue(11);
                        loggedInEmployee.Password = (string)reader.GetValue(12);
                        loggedInEmployee.Salary = (int)reader.GetValue(13);
                        loggedInEmployee.Sold_cars = (int)reader.GetValue(14);
                    }
    
                    Console.WriteLine("Der eingeloggte Mitarbeiter hat die Daten:\n" + loggedInEmployee.Employee_ID + "\n" + loggedInEmployee.Surename + "\n" + loggedInEmployee.Firstname + "\n" + loggedInEmployee.Phonenumber + "\n" + loggedInEmployee.E_mail + "\n" +
                                                                                       loggedInEmployee.Date_of_birth + "\n" + loggedInEmployee.City + "\n" + loggedInEmployee.Postcode + "\n" + loggedInEmployee.Street + "\n" + loggedInEmployee.Housenumber + "\n" +
                                                                                       loggedInEmployee.Contractnumber + "\n" + loggedInEmployee.Network_rights + "\n" + loggedInEmployee.Password + "\n" + loggedInEmployee.Salary + "\n" + loggedInEmployee.Sold_cars);
    
                    con.Close();
                }
                catch (Exception e)
                {
                    Console.WriteLine("Fehler!\n" + e.Message);
                    con.Close();
                }
            }
    }
    

    Employee.cs:

    using System;
    
    namespace CardealerManagement
    {
        class Employee
        {
            /*
            private string surename;
            private string firstname;
            private int phonenumber;
            private string e_mail;
            private int date_of_birth;
            private string city;
            private int postcode;
            private string street;
            private string housenumber;
            private int contractnumber;
            private string network_rights;
            private string password;
            private int sold_cars;
            private double salary;
            */
    
            //Eigenschaften
            public int Employee_ID { get; set; }
            public string Surename { get; set; }
            public string Firstname { get; set; }
            public int Phonenumber { get; set; }
            public string E_mail { get; set; }
            public string Date_of_birth { get; set; }
            public string City { get; set; }
            public int Postcode { get; set; }
            public string Street { get; set; }
            public string Housenumber { get; set; }
            public int Contractnumber { get; set; }
            public string Network_rights { get; set; }
            public string Password { get; set; }
            public int Sold_cars { get; set; }
            public double Salary { get; set; }
        }
    }
    

    Ich weiß es ist noch nicht alles optimal gelöst und ich habe bis jetzt auch keinerlei Eingabekontrollen, da ich am Anfang erstmal davon ausgehe das der User alles richtig eingibt.

    Villeicht könnt ihr mir helfen 🙂



  • @proggingneuling sagte in Ungültiger Objektname 'Employee' - VS Zeigt aber keinen Error an:

    CREATE TABLE Employees

    vs.

    cmd.CommandText = "SELECT * FROM Employee ...



  • @th69 oh haha ok das habe ich einfach übersehen.
    hat geklappt danke dir 🙂