如题,我的模板列是这样定义的:<asp:DataGrid ID="dg" runat="server" OnEditCommand="dg_update">
<headerstyle HorizontalAlign="Center" />
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:TextBox ID="ybwz" runat="server" Text='<%# DataBinder.Eval (Container.DataItem, "ybwz") %>'>
</asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn> 
<asp:editcommandcolumn HeaderText="操作" edittext="修改"/>
</Columns>
</asp:datagrid>
那么update语句该怎么写呢!
sqlstr = "UPDATE dfb SET ybwz = '" & ybwz.Text & "' WHERE id = " & id.Text

解决方案 »

  1.   

    <asp:DataGrid ID="dg" runat="server" OnUpdateCommand="dg_UpdateCommand" OnCancelCommand="dg_CancelCommand" OnEditCommand="dg_EditCommand">
    ...
    <asp:EditCommandColumn ButtonType="PushButton" UpdateText="确定" HeaderText="编辑" CancelText="放弃" EditText="修改"></asp:EditCommandColumn>
    ....
    cs里面
    绑定的时候指定
    this.dg.DataKeyField="ID";
    ....
    public void dg_EditCommand(object sender,DataGridCommandEventArgs e)
    {
    this.dg.EditItemIndex = (int)e.Item.ItemIndex;
    BindGrid();
    }
    public void dg_CancelCommand(object sender,DataGridCommandEventArgs e)
    {
    this.dg.EditItemIndex=-1;
    BindGrid();}
    public void dg_UpdateCommand(object sender,DataGridCommandEventArgs e)
    {
    string strID=this.dg.DataKeys[(int)e.Item.ItemIndex].ToString(); 
    string str=((TextBox)e.Item.Cells[0].Controls[0]).Text;
    ....
    string sqlstr="UPDATE dfb SET ybwz = '" + str + "' WHERE id = " +strID;
    ....
    this.dg.EditItemIndex=-1;
    BindGrid();
    }
      

  2.   

    不用vs2003,用vb又该怎样呢?
    是不是也查不多的啊
      

  3.   

    差不多,vb.net没用过
    网上搜搜,挺多的
      

  4.   

    Public Sub MyDataGrid_Update(sender As Object, e As DataGridCommandEventArgs)
               Dim ID As String = CType(e.Item.FindControl("lblID"), Label).Text
               Dim BoardType As String = CType(e.Item.FindControl("txtBoardType"), TextBox).Text
               Dim ReadMe As String = CType(e.Item.FindControl("txtReadMe"), TextBox).Text
               Response.write (ID & "<BR>" & BoardType & "<BR>" & ReadMe)
               UpdateRecord(id,boardtype,readme)   'Call Sub
       MyDataGrid.ShowFooter = True
       MyDataGrid.EditItemIndex = -1
               BindGrid()
        End Sub    Sub UpdateRecord(newID,newBoardType,newReadMe)
            Dim MyCommandDel As OleDbCommand
            Dim InsertCmd As String = "UPDATE  board SET boardtype=@boardtye,readme=@readme WHERE boardid =" & newID
            MyCommandDel = New OleDbCommand(InsertCmd, myConnection)
            MyCommandDel.parameters.add("@boardtype",Format(newBoardType))
        MyCommandDel.parameters.add("@readme",Format(NewReadme))
            MyCommandDel.Connection.Open()
            MyCommandDel.ExecuteNonQuery()
            MyCommandDel.Connection.Close()
        End Sub
      

  5.   

    this.dg.EditItemIndex=-1;
    这个写了是干嘛的啊?起什么作用呢?
      

  6.   

    this.dg.EditItemIndex=-1;
    是让dg的编辑行复位,也就是让原先进入编辑状态的行重新锁定
    EditItemIndex指的是要编辑的行索引