C#Windows表格
我有一个按钮,可以从dataGridView中删除所选行。 我还希望按钮能够检索选定的行" ordre"列值,所以我可以在从sql表中删除顺序的查询中使用它。
以下是我的代码:
dataGridView1.Rows.RemoveAt(this.dataGridView1.SelectedRows[0].Index);
//SQL connection
SqlConnection con = new SqlConnection(@"Data Source=" + globalvariables.hosttxt + "," + globalvariables.porttxt + "\\SQLEXPRESS;Database=ha;Persist Security Info=false; UID='" + globalvariables.user + "' ; PWD='" + globalvariables.psw + "'");
SqlCommand command = con.CreateCommand();
//SQL QUERY
command.CommandText = "DELETE FROM bestillinger WHERE ordrenr = @ordre";
command.Parameters.AddWithValue("@ordre",dataGridView1.SelectedRows[0].Cells["ordre"].Value.ToString())
con.Open();
var ordre = command.ExecuteScalar();
con.Close();
但它不起作用!没有记录被删除
答案 0 :(得分:0)
删除行后无法获取值。所以改变你的代码
//SQL connection
SqlConnection con = new SqlConnection(@"Data Source=" + globalvariables.hosttxt
+ "," + globalvariables.porttxt + "\\SQLEXPRESS;Database=ha;Persist Security
Info=false; UID='" + globalvariables.user + "' ; PWD='" + globalvariables.psw + "'");
SqlCommand command = con.CreateCommand();
//SQL QUERY
command.CommandText = "DELETE FROM bestillinger WHERE ordrenr = @ordre";
command.Parameters.AddWithValue("@ordre",dataGridView1.
SelectedRows[0].Cells["ordre"].Value.ToString())
con.Open();
var ordre = command.ExecuteScalar();
con.Close();
dataGridView1.Rows.RemoveAt(this.dataGridView1.SelectedRows[0].Index);
答案 1 :(得分:0)
这是错误的逻辑。
由于该行已被RemoveAt()删除,
你无法从dataGridView1.SelectedRows [0]获得错误的行。
答案 2 :(得分:0)
我想你想要这个。
private void grdform1_CellClick(object sender, DataGridViewCellEventArgs e)
{
If(e.ColumnIndex==0 ||e.ColumnIndex==1)
{
txtshowcolunm.text=e.ColumnIndex;
}
else
{
txtshowcolunm.text=e.ColumnIndex;
}
}