获取选中的dataGridView列数据?

时间:2014-09-20 07:52:49

标签: c# sql winforms datagridview get

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();

但它不起作用!没有记录被删除

3 个答案:

答案 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;
        }
           }