我的前台内容是:
<asp:datagrid id="showrecord" runat="server" OnUpdateCommand="update_grid" OnCancelCommand="cancel_grid" oneditcommand="edit_grid" AutoGenerateColumns="False" CellPadding="3" BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#CCCCCC" DataKeyField="id">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#669999"></SelectedItemStyle>
<EditItemStyle BackColor="#FFE0C0"></EditItemStyle>
<ItemStyle ForeColor="#000066" Width="0px"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#006699"></HeaderStyle>
<FooterStyle ForeColor="#000066" BackColor="White"></FooterStyle>
<Columns>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="修改"></asp:EditCommandColumn>
<asp:TemplateColumn HeaderText="id">
<ItemTemplate>
<asp:label text='<%# container.dataitem("id") %>' Runat="server" Height="5px">
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox readonly =True id="id" runat="server" text='<%# container.dataitem("id") %>' width="35px">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="uname">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("uname") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="uname" runat="server" text='<%# container.dataitem("uname") %>' width="69px"/>

</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="urealname">
<ItemTemplate>
<asp:label text = '<%# container.dataitem("urealname") %>' Runat =server />
</ItemTemplate>
<EditItemTemplate>
<asp:textbox width=100 id = "urealname" text = '<%# container.dataitem("urealname") %>' runat =server />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="upassword">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("upassword") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<Asp:TextBox runat="server" Height="96px" Width="427px" Text='<%# Container.DataItem("upassword") %>' Id="upassword"/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="udepartment">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("udepartment") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="udepartment" runat="server" text='<%# container.dataitem("udepartment") %>' width="100">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="ismanager">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("ismanager") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="ismanager" runat="server" text='<%# container.dataitem("ismanager") %>' width="30px">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="isassistant">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("isassistant") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="isassistant" runat="server" text='<%# container.dataitem("isassistant") %>' width="30px">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="ispresident">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("ispresident") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="ispresident" runat="server" text='<%# container.dataitem("ispresident") %>' width="30px">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="isadmin">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("isadmin") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="isadmin" runat="server" text='<%# container.dataitem("isadmin") %>' width="30px">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" ForeColor="#000066" BackColor="White" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
我的后台是:
 Sub update_grid(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
        Dim uname As String = CType(e.Item.FindControl("uname"), TextBox).Text
        Dim urealname As String = CType(e.Item.FindControl("urealname"), TextBox).Text
        Dim upassword As String = CType(e.Item.FindControl("upassword"), TextBox).Text
        Dim udepartment As String = CType(e.Item.FindControl("udepartment"), TextBox).Text
        Dim ismanager As String = CType(e.Item.FindControl("ismanager"), TextBox).Text
        Dim isassistant As String = CType(e.Item.FindControl("isassistant"), TextBox).Text
        Dim ispresident As String = CType(e.Item.FindControl("ispresident"), TextBox).Text
        Dim isadmin As String = CType(e.Item.FindControl("isadmin"), TextBox).Text
        Dim strSQL As String
        strSQL = "Update userlist Set uname = '" & uname & "',urealname = '" & urealname & "',upassword = '" & upassword & "',udepartment = '" & udepartment & "',ismanager = '" & ismanager & "',isassistant = '" & isassistant & "',ispresident = '" & ispresident & "',isadmin = '" & isadmin & "' Where " & showrecord.DataKeyField & "=" & _
        showrecord.DataKeys(e.Item.ItemIndex)
        ExecuteSQL(strSQL)
        showrecord.EditItemIndex = -1
        BindList()
    End Sub

解决方案 »

  1.   

    问题是在编辑状态下,修改完textbox中的数据后提交更新(update_grid),所有数据都是原值,并未改变
      

  2.   

    EditCommand事件有写吗?  是插不进数据还是哪有问题?
      

  3.   

    UpdateCommand.Parameters.Add("@uname",SqlDbType.NVarChar,50).Value = uname;
    ......
      

  4.   

    还有一例和上例一样
    前台程序:
    <asp:datagrid id="DataGrid1" runat="server" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px"
    BackColor="White" CellPadding="4" GridLines="Vertical" ForeColor="Black" AutoGenerateColumns="False" AllowPaging="True" DataKeyField="menuid" Width="100%" PageSize="15">
    <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#CE5D5A"></SelectedItemStyle>
    <AlternatingItemStyle BackColor="White"></AlternatingItemStyle>
    <ItemStyle BackColor="#F7F7DE"></ItemStyle>
    <HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#6B696B"></HeaderStyle>
    <FooterStyle BackColor="#CCCC99"></FooterStyle>
    <Columns>
    <asp:TemplateColumn>
    <HeaderStyle Width="25px"></HeaderStyle>
    <HeaderTemplate>
    <b>BigID </b>
    </HeaderTemplate>
    <ItemTemplate>
    <asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "mainid") %>' runat="server" ID="Label1"/>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:textbox Text='<%# DataBinder.Eval(Container.DataItem, "mainid") %>' runat="server" ID="Textbox1" Width=25 />
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn>
    <HeaderStyle Width="25px"></HeaderStyle>
    <HeaderTemplate>
    <b>SmallID </b>
    </HeaderTemplate>
    <ItemTemplate>
    <asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "subid") %>' runat="server" ID="Label2"/>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:textbox Text='<%# DataBinder.Eval(Container.DataItem, "subid") %>' runat="server" ID="Textbox2" Width=25 />
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn>
    <HeaderStyle Width="60px"></HeaderStyle>
    <HeaderTemplate>
    <b>目录名称 </b>
    </HeaderTemplate>
    <ItemTemplate>
    <asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "name") %>' runat="server" ID="Label3"/>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:textbox Text='<%# DataBinder.Eval(Container.DataItem, "name") %>' runat="server" ID="textbox3" Width=60 />
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn>
    <HeaderStyle Width="150px"></HeaderStyle>
    <HeaderTemplate>
    <b>目录说明 </b>
    </HeaderTemplate>
    <ItemTemplate>
    <asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "description") %>' runat="server" ID="Label4"/>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:textbox Text='<%# DataBinder.Eval(Container.DataItem, "description") %>' runat="server" ID="Textbox4" Width=150 />
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn>
    <HeaderStyle Width="150px"></HeaderStyle>
    <HeaderTemplate>
    <b>目录链接 </b>
    </HeaderTemplate>
    <ItemTemplate>
    <asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "url") %>' runat="server" ID="Label5"/>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:textbox Text='<%# DataBinder.Eval(Container.DataItem, "url") %>' runat="server" ID="Textbox5" Width=150 />
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" HeaderText="编辑" CancelText="取消" EditText="编辑">
    <HeaderStyle Width="50px"></HeaderStyle>
    </asp:EditCommandColumn>
    <asp:ButtonColumn Text="删除" HeaderText="删除" CommandName="Delete">
    <HeaderStyle Width="50px"></HeaderStyle>
    </asp:ButtonColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Right" ForeColor="Black" BackColor="#F7F7DE" Mode="NumericPages"></PagerStyle>
    </asp:datagrid>
    后台代码
    Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
            Dim name As TextBox
            Dim txt_name As String = CType(e.Item.FindControl("textbox3"), TextBox).Text
            Dim str_mainid As Integer = CInt(CType(e.Item.Cells(0).Controls(1), TextBox).Text)
            Dim str_subid As Integer = CInt(CType(e.Item.Cells(1).Controls(1), TextBox).Text)
            Dim str_name As String = CType(e.Item.Cells(2).Controls(1), TextBox).Text
            Dim str_secription As String = CType(e.Item.Cells(3).Controls(1), TextBox).Text
            Dim str_url As String = CType(e.Item.Cells(4).Controls(1), TextBox).Text
            Dim index As Integer = e.Item.ItemIndex
            Dim id As Integer = CInt(DataGrid1.DataKeys(index))
            Dim ds As SQLDB = New SQLDB '用自定义类定义数据dataset对象
            Dim sqlstr As String = "update ad_menu set mainid=" & str_mainid & ",subid=" & str_subid & ",name='" & str_name & "',description='" & str_secription & "',url='" & str_url & "' where menuid=" & id & ""
            ds.strSQL = sqlstr '给数据对象赋值sql语句
            'sqlstr &= Request("textbox3")
            lblMessage.Text = sqlstr '给前台label对象赋值,检验sql正确性
            ds.ExecuteSQL() '执行数据更新
            DataGrid1.EditItemIndex = -1
            dgBind() '重新绑定数据表
        End Sub以上在单击update按键时,sql语句显示取得textbox的值如str_name,str_mainid,str_subid等都是更新前的值。请问题出在哪里?