this.GridView1.DataKeyNames = "Emp_id";//提示错误为无法将类型“string”隐式转换为“string[]”
我的Emp_id是int类型protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string index = GridView1.DataKeys[e.RowIndex].ToString();       
            SqlConnection con = DB.createconn();
            SqlCommand cmd = new SqlCommand("delete from Users where Emp_id='"+index+"'",con);
            con.Open();
            cmd.EndExecuteNonQuery();
            this.Databind();   
    }  
请问如何来改!! 

解决方案 »

  1.   

    this.GridView1.DataKeyNames = new string[] { "Emp_id" };protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string index = GridView1.DataKeys[e.RowIndex].ToString();       
                SqlConnection con = DB.createconn();
                SqlCommand cmd = new SqlCommand("delete from Users where Emp_id="+index+"",con);
                con.Open();
                cmd.EndExecuteNonQuery();
                this.Databind();   
                con.Close();
        }
      

  2.   

    非常谢谢楼上的两位,但是要怎么样来建隐藏列呢,因为我是刚接触ASP.NET不久的以为初学者.
      

  3.   

    删除的时候其实没有那么复杂的
    就这个就行了
    dataGridView1.Focus();
    SendKeys.Send("{DEL}");
      

  4.   

    删除数据库中的行可以参照这个
    for (int i = 0; i < dataGridView1.SelectedRows.Count; i++)
    {
           String AdminName = dataGridView1.Rows[dataGridView1.SelectedRows[i].Index].Cells[0].Value.ToString();
           //MessageBox.Show(AdminName.ToString());
           String Sql_Delete = "Delete Admin_Info Where Admin_Name = @AdminName";
           SqlConnection Conn = new SqlConnection(SQLHelp.CONNSTRING);
           SqlCommand Comm = new SqlCommand(Sql_Delete, Conn);
           Comm.Parameters.Add("@AdminName", SqlDbType.VarChar).Value = AdminName;
           Conn.Open();
           Comm.ExecuteNonQuery();
           Conn.Close();
    }
      

  5.   

    cmd.ExecuteNonQuery()提示出现异常"数字 名称 'System.Web.UI.WebControls' 包含的前缀数目超过了最大值。最大值为 3" 
    大侠们请问又将如何改呢?