0

i want to delete the row of data from the database, currently i can delete the row of data by clicking on the delete button, but the database Table is not updated, how do i do so?

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

namespace project
{
    public partial class frmTestPrint : Form
    {
        public frmTestPrint()
        {
            InitializeComponent();
        }

        private void frmTestPrint_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'usersDataSet1.Booking' table. You can move, or remove it, as needed.
            this.bookingTableAdapter.Fill(this.usersDataSet1.Booking);

        }


        private void btnDelete_Click(object sender, EventArgs e)
        {
            dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);
        }
    }
}
5
  • If you are trying to delete the row from the database as well, don't you think it would be a good idea to post your SQL Command code as well? As it is, you have only posted the code that affects the datagridview. Commented Apr 8, 2013 at 17:23
  • i have no SQL command... i used the datagridview and chose the datasource through the properties... Commented Apr 8, 2013 at 17:27
  • is that the problem? is that why i cant delete and update the SQL database table? Commented Apr 8, 2013 at 17:28
  • No necessarily, no. It was just a suggested starting point. What you need to do is not just update your datagridview but the database as well. See the answer below. Commented Apr 8, 2013 at 17:29
  • thanks. and the answer below is some what confussing there are many answers in the question... which one is the best to guide me? Commented Apr 8, 2013 at 17:32

4 Answers 4

1
private void Delete()
    {

        int i = 0;
        con1 = getConnection();
        con1.Open();
        SqlCommand storedProcedureCommand = con1.CreateCommand();
        storedProcedureCommand.CommandType = CommandType.Text;
        storedProcedureCommand.CommandText = "DELETE FROM name of your table WHERE pkeyID = @pkeyID";

        SqlParameter inparam2 = new SqlParameter("@pkeyID", SqlDbType.Int);
        inparam2.Direction = ParameterDirection.Input;
        inparam2.Value = Convert.ToInt32(dataGridView2.Rows[i].Cells[0].Value);
        storedProcedureCommand.Parameters.Add(inparam2);
        storedProcedureCommand.ExecuteNonQuery();

    }    
Sign up to request clarification or add additional context in comments.

2 Comments

of course change the name of your datagrid,plus find in witch cell is your pkeyID,then call loaddata() method after that and thats it!
looks good, im currently working on other things, but i will have a look at this again and if it works will mark your reply as correct answer :) cheers
1

This is only to delete one at a time. I am still working on multiple deletes.

        if (MessageBox.Show("Sure you wanna delete?", "Warning", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
        {
            //get the index from the dataGridView
            int rowIndex = table1DataGridView.CurrentCell.RowIndex;
            //Remove from both the actual database & datagridview
            table1BindingSource.RemoveAt(rowIndex);
            //update table 1
            this.table1TableAdapter.Update(this.maquinasDataSet.Table1);
            //load table 1
            this.table1TableAdapter.Fill(this.maquinasDataSet.Table1);
        }

Comments

0

You're not actually impacting the database at all. Perhaps this will help:

How to delete a selected DataGridViewRow and update a connected database table?

Have you explored the .Update method you get with the TableAdapter? I think that should cover what you're after. http://msdn.microsoft.com/en-us/library/bz9tthwx(v=vs.100).aspx

Does this work:

private void btnDelete_Click(object sender, EventArgs e)
    {
        dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);
        this.bookingTableAdapter.Update(this.usersDataSet1.Booking);
    }

if that doesn't work, you're going to have to come back w/ an error message or hopefully someone who knows what they're doing can come bail me out...

9 Comments

i have looked at the link, cant seem to find a real solution that helps? non of the code deletes my data from the DB
I think the last one should get you close...or maybe have a look here: msdn.microsoft.com/en-us/library/xzb1zw3x.aspx
its not working, or not enough guideance shall i say, do you know if you can explain the steps better? thanks
@bandaa added a bit more to my answer. Hopefully that will get you there (if it's indeed the correct answer).
i had tried something similar to that... but i have tried your answer, the problem is, it does not remove the data from the table, it still just deletes the data from the datagridview UI but not from the database.
|
0

Delete a value from the data grid using DataGridviewBUttonColumn

private void delete_record()
    {

         if (dataGridView1.Rows.Count > 1 && dataGridView1.SelectedRows[0].Index != dataGridView1.Rows.Count - 1)
        {
            try
            {
                //am taking connection string using a class called "sqlconnection_imventory()"
                SqlConnection conn = Connection.sqlconnection_imventory();
                //Cell[0] is my button column & Cell[1] is SID coumn
                string a = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
                string sql = "DELETE FROM grades WHERE SID='" + a + "'";
                conn.Open();
                SqlCommand delcmd = new SqlCommand(sql, conn);
                delcmd.Connection = conn;
                delcmd.ExecuteNonQuery();
                conn.Close();
                dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
                MessageBox.Show("deleted");
            }
            catch (Exception)
            {

                throw;
            } 
        }
    }

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.