我想从数据库中删除数据行,目前我可以通过单击删除按钮删除数据行,但是数据库表没有更新,我该怎么做?
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);
}
}
}
答案 0 :(得分: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();
}
答案 1 :(得分: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);
}
答案 2 :(得分:0)
根本没有影响数据库。也许这会有所帮助:
How to delete a selected DataGridViewRow and update a connected database table?
您是否研究过使用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);
}
如果这不起作用,你将不得不带着错误信息回来,或者希望有人知道他们正在做什么可以帮我保释......
答案 3 :(得分: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;
}
}
}