日期:2014-05-18  浏览次数:20377 次

新手提问,谢谢您回答!
protected   void   GridView1_RowDeleting(object   sender,   GridViewDeleteEventArgs   e)
        {
                string   sqlstr   =   "delete   from   表   where   id= ' "   +   GridView1.DataKeys[e.RowIndex].Value.ToString()   +   " ' ";
                sqlcon   =   new   SqlConnection(strCon);
                sqlcom   =   new   SqlCommand(sqlstr,sqlcon);
                sqlcon.Open();
                sqlcom.ExecuteNonQuery();
                sqlcon.Close();
                bind();
        }


string   sqlstr   =   "delete   from   表   where   id= ' "   +   GridView1.DataKeys[e.RowIndex].Value.ToString()   +   " ' ";
在这条SQL删除语句中   GridView1.DataKeys[e.RowIndex].Value.ToString()
是什么意思?其中   DataKeys表示什么?   e.RowIndex又表示什么?详细解答下!谢谢您!

------解决方案--------------------
在这条SQL删除语句中 GridView1.DataKeys[e.RowIndex].Value.ToString()
是什么意思?其中 DataKeys表示什么? e.RowIndex又表示什么?
=========================================================
DataKeys主键列,之所以是复数,是因为主键有可能由多个字段组成

e.RowIndex,当前事件源的行索引,简单地说就是发生事件的那一行
------解决方案--------------------


首先数据现在是显示在Gridview中,在Gridview中每一行都可以绑定一个数据库的字段,如id,或者是name之类的,当前他绑定的id
而GridView1.DataKeys[e.RowIndex].Value.ToString()这表示取出当前行的这个id的数据;
e.RowIndex 则是用来区别id这个数据字段在不同行的索引,不能说所有行的id 都一样吧。
e.表示当前的这个Gridview1
RowIndex 顾名思义,就是行的行号了