删除代码如下:
    SqlConnection sqlcon;
    SqlCommand sqlcom;
    string strCon = "server=.;uid=sa;pwd=;database=ASPNET配置";
     protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
       // SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=;database=ASPNET配置");        string sqlstr = "delete from 表 where UserId='" + GridView1.DataKeys[e.RowIndex].Value.ToString()+ "'";
        sqlcon = new SqlConnection(strCon);
        sqlcom = new SqlCommand(sqlstr, sqlcon);
        sqlcon.Open();
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        this.DataBind();
    }

解决方案 »

  1.   

    GridView1.DataKeys[e.RowIndex].Value  这里有问题GridView1.Rows[e.RowIndex].cells[0].Text这样试试
      

  2.   

    可以了,但是出现了这个错误:
    将字符串转换为 uniqueidentifier 时失败。 : System.Data.SqlClient.SqlException: 将字符串转换为 uniqueidentifier 时失败。
      

  3.   

    绑定gridview的时候配置了datakeys没有?
    最好代码贴全点
      

  4.   

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                ConnectionString="<%$ ConnectionStrings:ASPNET配置ConnectionString %>" 
                SelectCommand="SELECT [UserId], [UserName] FROM [vw_aspnet_Users]">
            </asp:SqlDataSource>
    这个是配置原文件,UserId是主键。这个是微软提供的数据库。
      

  5.   

    断点GridView1.DataKeys[e.RowIndex]看有值没有。
      

  6.   

    断下下错误提示是这句不能转换: sqlcom.ExecuteNonQuery();
      

  7.   

    知道呀,如果没值的话,肯定是index出问题了。有值转换出错了,上边的那句
      

  8.   

    你设置了datakeys没有?
    没有设置从哪儿读取?
      

  9.   

    datakey已经设置不过了 设置的是主键告诉过你了呀。
      

  10.   

     /// <summary>
            /// 删除一条数据
            /// </summary>
            public void Delete(int KID)
            {            StringBuilder strSql = new StringBuilder();
                strSql.Append("delete from SYS_CYLB ");
                strSql.Append(" where KID=@KID ");
                SqlParameter[] parameters = {
    new SqlParameter("@KID", SqlDbType.Int,4)};
                parameters[0].Value = KID;            DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
            }/// <summary>
            /// 执行带一个存储过程参数的的SQL语句。
            /// </summary>
            /// <param name="SQLString">SQL语句</param>
            /// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
            /// <returns>影响的记录数</returns>
            public static int ExecuteSql(string SQLString, string content)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    SqlCommand cmd = new SqlCommand(SQLString, connection);
                    System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter("@content", SqlDbType.NText);
                    myParameter.Value = content;
                    cmd.Parameters.Add(myParameter);
                    try
                    {
                        connection.Open();
                        int rows = cmd.ExecuteNonQuery();
                        return rows;
                    }
                    catch (System.Data.SqlClient.SqlException e)
                    {
                        throw e;
                    }
                    finally
                    {
                        cmd.Dispose();
                        connection.Close();
                    }
                }
            }
      

  11.   

    参见
    http://dotnet.aspx.cc/file/Add-Delete-Update-Edit-Data-With-Paging-in-GridView.aspx
      

  12.   

    代码呢?真的没看见
    SELECT [UserId], [UserName] FROM [vw_aspnet_Users] 
    这个是sql查询语句 查询这个表的2个字段
      

  13.   

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                DataSourceID="SqlDataSource1" AllowPaging="True" CellPadding="4" 
                ForeColor="#333333" GridLines="None" onrowdeleting="GridView1_RowDeleting" 
                RowHeaderColumn="UserName" style="text-align: left" Width="493px"  
                onrowupdating="GridView1_RowUpdating" AllowSorting="True" DataKeyNames="UserId">
            <RowStyle BackColor="#EFF3FB" />
            <Columns>
                <asp:BoundField DataField="UserName" HeaderText="UserName" 
                    SortExpression="UserName" />
                <asp:CommandField ShowEditButton="True" />
                <asp:CommandField ShowSelectButton="True" />
                <asp:CommandField ShowDeleteButton="True" />
            </Columns>
            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <EditRowStyle BackColor="#2461BF" />
            <AlternatingRowStyle BackColor="White" />
        </asp:GridView>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                ConnectionString="<%$ ConnectionStrings:ASPNET配置ConnectionString %>" 
                SelectCommand="SELECT [UserId], [UserName] FROM [vw_aspnet_Users]">
            </asp:SqlDataSource>
      

  14.   

    我觉得因该是没有在gridview中设置主键 我就是这么解决的
      

  15.   

    在gridview 中设置DataKeyField="ID",虽然你上面用了DataKeyNames="".