public void DataGrid_Delete(Object sender,DataGridCommandEventArgs E)
{
//从文件Web.config中读取连接字符串
string strconn= ConfigurationSettings.AppSettings["dsn"];
//连接本地计算机的MMS数据库
SqlConnection cn= new SqlConnection (strconn);
cn.Open ();
string userdelete="delete from Users where UID=@UID";
SqlCommand cm=new SqlCommand (userdelete,cn);
            //cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.Add ("@UID",SqlDbType.VarChar );
//从DateGrid中取得更新内容
//Cells [1]为UID列
string uidvalue=E.Item.Cells [1].Text .ToString ();
cm.Parameters ["@UID"].Value =uidvalue;
cm.ExecuteNonQuery ();
dgd_userlist.EditItemIndex =-1;
BindGrid();
}

解决方案 »

  1.   

    自已跟入看看uid有没有值。程序好像没有问题。 那个cm.ExecuteNonQuery ();返因的值是多少
      

  2.   

    不知道LZ写的什么语句:
    string uidvalue=E.Item.Cells [1].Text .ToString ();//这里E能大写吗?
      

  3.   

    使用了模板列的可能性大,findcontrol一下
      

  4.   

    前台如下:<asp:datagrid id="dgd_userlist" runat="server" AllowPaging="True" PageSize="15" AutoGenerateColumns="False" DataKeyField="UID" OnUpdateCommand="DataGrid_Update" OnEditCommand="DataGrid_Edit" OnCancelCommand="DataGrid_Cancel" OnDeleteCommand="DataGrid_Delete" OnPageIndexChanged="DataGrid_Page" onselectedindexchanged="DataGrid1_SelectedIndexChanged">
    <EditItemStyle Width="3px" BackColor="#FFFF80"></EditItemStyle>
    <Columns>
    <asp:HyperLinkColumn DataNavigateUrlField="id" DataNavigateUrlFormatString="userdetail.aspx?id={0} " DataTextField="id" HeaderText="ID" DataTextFormatString="{0}"></asp:HyperLinkColumn>
                                        <asp:HyperLinkColumn DataNavigateUrlField="id" DataNavigateUrlFormatString="userdetail.aspx?id={0} "
                                            DataTextField="uid" HeaderText="用户名" Text="uid"></asp:HyperLinkColumn>
    <asp:TemplateColumn HeaderText="类型">
    <ItemTemplate>
    <asp:Label id=lbl_upower runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.upower") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:DropDownList id="ddl_upower" runat="server">
    <asp:ListItem Value="1">1</asp:ListItem>
    <asp:ListItem Value="2">2</asp:ListItem>
    </asp:DropDownList>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="cname" SortExpression="2" ReadOnly="True" HeaderText="所在部门"></asp:BoundColumn>
    <asp:BoundColumn DataField="uname" SortExpression="3" ReadOnly="True" HeaderText="姓名"></asp:BoundColumn>
                                        <asp:BoundColumn DataField="ushenhe" HeaderText="审核" ReadOnly="True"></asp:BoundColumn>
    <asp:ButtonColumn Text="删除" CommandName="Delete"></asp:ButtonColumn>
    </Columns>
    <PagerStyle NextPageText="上一页" PrevPageText="下一页" Mode="NumericPages"></PagerStyle>
    </asp:datagrid>e就是大写的阿,小写就出错了哦