Search code examples
c#jet

Microsoft jet database engine can't find table


I corrected the spelling mbd to mdb but now the error is

Micorsoft Jet database engine cannot find the input table or query employee make sure it exist and that its name is spelled correctly.

What I want to do is connect to database and extract four fields in the texbox here is my code

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace Empdetails
{
    public partial class EGUI : Form
    {

        private OleDbConnection dbConn; // Connectionn object
        private OleDbCommand dbCmd;     // Command object
        private OleDbDataReader dbReader;// Data Reader object
        private Emp1 Edetails;
        private string sConnection;
        private string sql;


        public EGUI()
        {

            InitializeComponent();
        }

        private void button1_Click(object sender,System.EventArgs e)
        {



            try
            {
                // Construct an object of the OleDbConnection 
                // class to store the connection string 
                // representing the type of data provider 
                // (database) and the source (actual db)
                sConnection =
                    "Provider=Microsoft.Jet.OLEDB.4.0;" +
                    "Data Source=employee.mdb";

                dbConn = new OleDbConnection(sConnection);
                dbConn.Open();

                // Construct an object of the OleDbCommand 
                // class to hold the SQL query. Tie the  
                // OleDbCommand object to the OleDbConnection
                // object
                sql = "Select * From employee";
                dbCmd = new OleDbCommand();
                dbCmd.CommandText = sql;
                dbCmd.Connection = dbConn;

                // Create a dbReader object 
                dbReader = dbCmd.ExecuteReader();

                while (dbReader.Read())
                {
                    Edetails = new Emp1
                        (dbReader["Name"].ToString(), dbReader["Address"].ToString(), dbReader["SocialSecurityNumber"].ToString(), dbReader["Rate"].ToString());
                    textBox1.Text = dbReader["Name"].ToString();
                    textBox2.Text = dbReader["Address"].ToString();
                    textBox3.Text = dbReader["SocialSecurityNumber"].ToString();
                    textBox4.Text = dbReader["Rate"].ToString();






                    // tb1.Text = dbReader["FirstName"].ToString();
                }    // tb2.Text = dbReader["LastName"].ToString();

                dbReader.Close();
                dbConn.Close();
            }
            catch (System.Exception ex)
            {
                MessageBox.Show("exeption" + ex.ToString());


            }

        }

        private void EGUI_Load(object sender, EventArgs e)
        {

        }
    }

Solution

  • Tim and binil are right, you need to provide the full path. I tested your code and it works when you add the full path

           try
            {
                // Construct an object of the OleDbConnection 
                // class to store the connection string 
                // representing the type of data provider 
                // (database) and the source (actual db)
                string sConnection =
                    "Provider=Microsoft.Jet.OLEDB.4.0;" +
                    "Data Source=C:\\Code\\StackOverflowSamples\\ReadFromAccessDB\\employee.mdb";
    
                using (OleDbConnection dbConn = new OleDbConnection(sConnection))
                {
                    dbConn.Open();
    
                    // Construct an object of the OleDbCommand 
                    // class to hold the SQL query. Tie the  
                    // OleDbCommand object to the OleDbConnection
                    // object
                    string sql = "Select * From employee";
                    OleDbCommand dbCmd = new OleDbCommand();
                    dbCmd.CommandText = sql;
                    dbCmd.Connection = dbConn;
    
                    // Create a dbReader object 
                    using (OleDbDataReader dbReader = dbCmd.ExecuteReader())
                    {
    
                        while (dbReader.Read())
                        {
                            Console.WriteLine(dbReader["EmployeeName"].ToString());
                            Console.WriteLine(dbReader["Address"].ToString());
                            Console.WriteLine(dbReader["SSN"].ToString());
                            Console.WriteLine(dbReader["Rate"].ToString());
                        }
    
                    }
                }
            }
            catch (System.Exception ex)
            {
                Console.WriteLine("exeption" + ex.ToString());
    
    
            }
            Console.ReadLine();
    
        }