2

I am new to OleDb library and I want to add a text form text box into a database with this library. My code:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private OleDbConnection conn = new OleDbConnection();
    private void button1_Click(object sender, EventArgs e)
    {
        conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Project\Learning\Visual C#\Form\WindowsFormsApplication1\WindowsFormsApplication1\Test.mdb";
        string NAME = textBox1.Text;
        conn.Open();
        OleDbCommand cmmd = new OleDbCommand("INSERT into student(NAME)" + "VALUES(@NAME)", conn);  
        if (conn.State == ConnectionState.Open)
        {
            cmmd.Parameters.Add("@NAME", OleDbType.Char, 20);
            cmmd.Parameters["@NAME"].Value = NAME;
            try
            {
                cmmd.ExecuteNonQuery();
                MessageBox.Show("DATA ADDED");
                conn.Close();
            }
            catch (OleDbException expe)
            {
                MessageBox.Show(expe.Source);
            }
        }
        else
        {
            MessageBox.Show("CON FAILED");
        }
    }
}

But it doesn't work. I cannot find a good reference for OleDbCommand in C#.
How can I use OleDbCommand in my code?

5
  • What's not working? What line do you get an exception on and what is the exception? Commented Mar 23, 2013 at 12:00
  • In my try catch,code drop in catch section and show "Microsoft Access Database Engine" in Message Box.what's wrong? Commented Mar 23, 2013 at 12:10
  • yes,but the same result! Commented Mar 23, 2013 at 12:13
  • No, Did you changed any part of this code? Commented Mar 23, 2013 at 12:23
  • I updated my answer, I can't test but I think that should work for you. Commented Mar 23, 2013 at 12:28

2 Answers 2

6

Solved

public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        OleDbConnection conn = new OleDbConnection();
        conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Project\Learning\Visual C#\Form\WindowsFormsApplication2\WindowsFormsApplication2\Test.mdb";
        conn.Open();
        string Name = textBox1.Text;
        OleDbCommand cmmd = new OleDbCommand("INSERT INTO table1 (student) Values(@Name)", conn);
        if (conn.State == ConnectionState.Open)
        {
            cmmd.Parameters.Add("@Name", OleDbType.VarWChar, 20).Value = Name;
            try
            {
                cmmd.ExecuteNonQuery();
                MessageBox.Show("DATA ADDED");
                conn.Close();
            }
            catch (OleDbException expe)
            {
                MessageBox.Show(expe.Message);
                conn.Close();
            }
        }
        else
        {
            MessageBox.Show("CON FAILED");
        }
    }
Sign up to request clarification or add additional context in comments.

1 Comment

Good to see you solved this, if you wait a little while you can mark this as the answer.Happy coding :)
3

May be this code can help you

      OleDbConnection dbConnection = new OleDbConnection(CONNECTION_STRING);

        string commandString = 
        "INSERT INTO MeetingEntries (Subject, Location, Start Date, End Date, Enable   Alarm, Repeat Alarm, Reminder, Repetition Type)" + " VALUES (?, ?, ?, ?, ?, ?, ?, ?)";

        OleDbCommand commandStatement = new OleDbCommand(commandString, dbConnection);

        commandStatement.Parameters.Add("@Subject", OleDbType.VarWChar, 30).Value = currentEntry.Subject;
        commandStatement.Parameters.Add("@Location", OleDbType.VarWChar, 50).Value = currentEntry.Location;
        commandStatement.Parameters.Add("@Start Date", OleDbType.Date, 40).Value = currentEntry.StartDateTime.Date;
        commandStatement.Parameters.Add("@End Date", OleDbType.Date, 40).Value = currentEntry.EndDateTime.Date;
        commandStatement.Parameters.Add("@Enable Alarm", OleDbType.Boolean, 1).Value = currentEntry.IsAlarmEnabled;
        commandStatement.Parameters.Add("@Repeat Alarm", OleDbType.Boolean, 1).Value = currentEntry.IsAlarmRepeated;
        commandStatement.Parameters.Add("@Reminder", OleDbType.Integer, 2).Value = currentEntry.Reminder;
        commandStatement.Parameters.Add("@Repetition Type", OleDbType.VarWChar, 10).Value = currentEntry.Repetition;

        dbConnection.Open();
        commandStatement.ExecuteNonQuery();

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.