如果这是一个平凡的问题或缺乏信息,请提前道歉,我是软件开发和堆栈溢出社区的新手。
为澄清目的:
我想要实现的目标和问题概述:
用户应该能够在datagridview中选择一行,并选择删除按钮以从数据库中删除所选用户。运行我的代码时,行将从datagridview中删除,但不会删除数据库,因为刷新datagridview时记录会返回,我不太确定我哪里出错了..
private void btnDelete_Click(object sender, EventArgs e)
{
delete_record();
SqlConnection conn = new SqlConnection();
SqlCommand delcmd = new SqlCommand();
conn.ConnectionString = "server=localhost;Trusted_connection=yes;database=AdventureWorks2012";
conn.Open();
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Users", conn);
DataTable dt = new DataTable();
da.Fill(dt);
dbgrid1.DataSource = dt;
conn.Close();
}
private void delete_record()
{
SqlConnection conn = new SqlConnection();
SqlCommand delcmd = new SqlCommand();
conn.ConnectionString = "server=localhost;Trusted_connection=yes;database=AdventureWorks2012";
if (dbgrid1.Rows.Count > 1 && dbgrid1.SelectedRows[0].Index != dbgrid1.Rows.Count - 1)
{
delcmd.CommandText = "DELETE FROM Users WHERE ID=" + dbgrid1.SelectedRows[0].Cells[0].Value.ToString() + "";
conn.Open();
delcmd.Connection = conn;
delcmd.ExecuteNonQuery();
conn.Close();
dbgrid1.Rows.RemoveAt(dbgrid1.SelectedRows[0].Index);
MessageBox.Show("deleted");
}
}
答案 0 :(得分:0)
在您的代码中
dbgrid1.Rows.RemoveAt(dbgrid1.SelectedRows[0].Index);
上面的代码从网格中删除数据,并且工作正常
但是下面的代码不能正常工作(我的SQL查询删除行)
delcmd.CommandText = "DELETE FROM Users WHERE ID=" + dbgrid1.SelectedRows[0].Cells[0].Value.ToString() + "";
表示您正在使用的ID dbgrid1.SelectedRows[0].Cells[0].Value.ToString()
错误。
在观察窗口中取出它,找出那里有什么价值。