0

我想从数据库中删除该行数据,目前我可以通过单击删除按钮删除该行数据,但是数据库表没有更新,我该怎么做?

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);
        }
    }
}
4

4 回答 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();

    }    
于 2013-04-19T07:39:50.413 回答
1

这只是一次删除一个。我仍在处理多个删除。

        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);
        }
于 2017-12-04T18:44:35.467 回答
0

您实际上根本没有影响数据库。也许这会有所帮助:

如何删除选定的 DataGridViewRow 并更新已连接的数据库表?

您是否探索过使用 TableAdapter 获得的 .Update 方法?我认为这应该涵盖你所追求的。 http://msdn.microsoft.com/en-us/library/bz9tthwx(v=vs.100).aspx

这是否有效:

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

如果这不起作用,您将不得不返回错误消息或希望知道他们在做什么的人可以保释我...

于 2013-04-08T17:26:46.967 回答
0

使用 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;
            } 
        }
    }
于 2016-05-21T13:07:33.307 回答