Click here to Skip to main content
15,885,641 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I am trying to perform insert, update, delete actions on table using DataGridView.
Reference: http://csharp.net-informations.com/datagridview/csharp-datagridview-database-operations.htm[^]
My database is Microsoft Access 2007. It inserts well but on updating and deleting gives an error. The Code is as following...
C#
OleDbCommand sCommand;
        OleDbDataAdapter sAdapter;
        OleDbCommandBuilder sBuilder;
        DataSet sDs;
        DataTable sTable; 

        //Load Data...
        private void button1_Click(object sender, EventArgs e)
        {
            string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " + Application.StartupPath + @"\Label-Data.accdb";
            string sql = "SELECT * FROM _Default";
            OleDbConnection connection = new OleDbConnection(connectionString);
            connection.Open();
            sCommand = new OleDbCommand(sql, connection);
            sAdapter = new OleDbDataAdapter(sCommand);
            sBuilder = new OleDbCommandBuilder(sAdapter);
            sDs = new DataSet();
            sAdapter.Fill(sDs, "_Default");
            sTable = sDs.Tables["_Default"];
            connection.Close();
            dataGridView1.DataSource = sDs.Tables["_Default"];
            dataGridView1.ReadOnly = true;
            button4.Enabled = false;
            dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
        }

        //Add or Edit...
        private void button2_Click(object sender, EventArgs e)
        {
            dataGridView1.ReadOnly = false;
            button4.Enabled = true;
            button2.Enabled = false;
            button3.Enabled = false;
        }

        //Delete...
        private void button3_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Do you want to delete this row ?", "Delete", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
                sAdapter.Update(sTable);
            }
        }

        //Save...
        private void button4_Click(object sender, EventArgs e)
        {
            sAdapter.Update(sTable);
            dataGridView1.ReadOnly = true;
            button4.Enabled = false;
            button2.Enabled = true;
            button3.Enabled = true;
        }


It gives an error on sAdapter.Update(sTable); line. The error is "Syntax error in query expression '((ID = ?) AND ((? = 1 AND Prn IS NULL) OR (Prn = ?)) AND ((? = 1 AND _Copy IS NULL) OR (_Copy = ?)) AND ((? = 1 AND _Item IS NULL) OR (_Item = ?)) AND ((? = 1 AND _Design IS NULL) OR (_Design = ?)) AND ((? = 1 AND Tray_No IS NULL) OR (Tray_No = ?)) AND (('." Any suggestions?
Posted
Updated 24-Jan-13 18:07pm
v2
Comments
Azziet 25-Jan-13 0:34am    
error shows that problem with your query...check your query

1 solution

your query is not proper. check it
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900