可以用datagrid获到表结构和数据。进行编辑,然后根据编辑的那行的标识字段更新数据库,就OK了。

解决方案 »

  1.   

    我现在能够用Datagrid把结果显示出来,但不知道怎么可以让用户编辑它,对这个控件的许多用法还不清楚
      

  2.   

    用datagrid显示结果集合,可以在上面编辑,然后把结果update到数据库。
      

  3.   

    <%@Import Namespace="System.data.SqlClient"%>
    <script language="VB" runat="server">
    Sub Page_Load(Sender As Object,E As EventArgs)
      Dim con As New SqlConnection("Data Source=localhost;Initial Catalog=a;User Id=sa;Password=;")
      Dim cmd As SqlCommand
      con.Open()
      cmd=New SqlCommand("select * from lianxi",con)
      DataGrid1.DataSource=cmd.ExecuteReader()
      DataGrid1.DataBind()
      
    End Sub
    </script>
    <asp:DataGrid id="DataGrid1" runat="server"/>
    这是我的代码,现在不能编辑阿,还要怎么改动?
      

  4.   

    datagrid就可以了~~`
    具体的自己想吧~
      

  5.   

    偶有这样的例子[email protected]
      

  6.   

    加入一个编辑命令列editcommandcolumn就可以了吗?大部分工作要.net完成
      

  7.   

    我加了<Columns>
      <asp:EditCommandColumn EditText="Edit" CancelText="cancel" UpdateText="update" ItemStyle-Wrap="false"/>
    </Columns>
    可是更新的具体操作该如何呢?
      

  8.   

    还可以使用模板列,将ItemTemplete全部设置问TextBox,更新后一次UPDATE就可以了。
      

  9.   

    参考QuickStart:
    http://localhost/QuickStart/aspplus/default.aspx?url=/quickstart/aspplus/doc/webdataaccess.aspx
      

  10.   

    Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommandMe.SqlUpdateCommand1.Parameters("@产品编号").Value = DataGrid1.DataKeys(CInt(e.Item.ItemIndex))Dim Cols As String() = {"@产品", "@库存量", "@单价"}Dim NumCols As Integer = e.Item.Cells.CountDim I As IntegerFor I = 3 To NumCols - 1 '跳过前三列和最后一列Dim CurrentTextBox As TextBoxCurrentTextBox = e.Item.Cells(I).Controls(0)Dim ColValue As String = CurrentTextBox.Text' 检查在所需字段中是否有空值If I < 6 And ColValue = "" ThenLabel1.Text = "错误"ReturnEnd IfMe.SqlUpdateCommand1.Parameters(Cols(I - 3)).Value = ColValueNextMe.SqlUpdateCommand1.Connection.Open()TryMe.SqlUpdateCommand1.ExecuteNonQuery()Label1.Text = "<b>已更新记录</b><br>"DataGrid1.EditItemIndex = -1Catch Exp As ExceptionLabel1.Text = "错误:已存在具有相同主键的记录"End TryMe.SqlUpdateCommand1.Connection.Close()Me.SqlDataAdapter1.Fill(DataSet11, "产品资料")Me.DataGrid1.DataBind()End Sub
      

  11.   

    添加以上代码前请先干掉系统自动生成的几个带Original_的语句和update里面的sql语句
      

  12.   

    谁告诉我啊用 huzhishan(胡一刀) 所说的办法,具体怎么做呢?用DataTable.AcceptChanges()嘛?具体如何呢?
      

  13.   

    <asp:datagrid id="My_grid" runat="server" Width="500px" BorderColor="Gray" DataKeyField="id" PageSize="8"
    AllowPaging="True" AutoGenerateColumns="False" BorderWidth="1px" OnDeleteCommand="My_grid_delete"
    OnEditCommand="My_grid_edit" OnItemCreated="My_grid_ItemCreated">
    <SelectedItemStyle HorizontalAlign="Center" Height="20px" VerticalAlign="Middle"></SelectedItemStyle>
    <AlternatingItemStyle Font-Size="12px" HorizontalAlign="Center" Height="20px" BackColor="White"></AlternatingItemStyle>
    <ItemStyle Font-Size="12px" HorizontalAlign="Center" Height="20px"></ItemStyle>
    <HeaderStyle Font-Size="13px" HorizontalAlign="Center" Height="20px" BackColor="Silver"></HeaderStyle>
    <Columns>
    <asp:BoundColumn DataField="T_Str_Glzh" HeaderText="用户帐号">
    <HeaderStyle Width="120px"></HeaderStyle>
    </asp:BoundColumn>
    <asp:BoundColumn DataField="T_Str_Yhxm" HeaderText="用户姓名">
    <HeaderStyle Width="120px"></HeaderStyle>
    </asp:BoundColumn>
    <asp:BoundColumn DataField="T_Int_Yhqx" HeaderText="用户权限">
    <HeaderStyle Width="120px"></HeaderStyle>
    </asp:BoundColumn>
    <asp:ButtonColumn Text="修改" HeaderText="修改" CommandName="Edit">
    <HeaderStyle Width="70px"></HeaderStyle>
    </asp:ButtonColumn>
    <asp:ButtonColumn Text="删除" HeaderText="删除" CommandName="Delete">
    <HeaderStyle Width="70px"></HeaderStyle>
    </asp:ButtonColumn>
    </Columns>
    <PagerStyle VerticalAlign="Middle" Height="20px" Font-Size="30px" Font-Names="新宋体" Font-Bold="True"
    HorizontalAlign="Center" Mode="NumericPages"></PagerStyle>
    </asp:datagrid>
        Sub My_grid_Edit(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs)        '转到第二个页面进行修改
            Response.Redirect("yhxg.aspx?id=" & My_grid.DataKeys(e.Item.ItemIndex))    End Sub
      

  14.   

    Sub MyDataGrid_Update(ByVal Sender As Object, ByVal E As DataGridCommandEventArgs)
            Dim MyCommand As SqlCommand        Dim UpdateCmd As String = "Update Tbl_Yhb Set T_Str_Yhxm=@Yhxm,T_Str_Yhzh=@Yhzh,T_Str_Yhmm=@Yhmm,T_Bln_Qyzt=@Qyzt where id=@id"
            MyCommand = New SqlCommand(UpdateCmd, MyConnection)        MyCommand.Parameters.Add(New SqlParameter("@Id", SqlDbType.int, 4))
            MyCommand.Parameters.Add(New SqlParameter("@Yhzh", SqlDbType.NVarChar, 50))
            MyCommand.Parameters.Add(New SqlParameter("@Yhxm", SqlDbType.NVarChar, 50))
            MyCommand.Parameters.Add(New SqlParameter("@Yhmm", SqlDbType.NVarChar, 50))
            MyCommand.Parameters.Add(New SqlParameter("@Qyzt", SqlDbType.Bit, 1))
            MyCommand.Parameters("@Id").Value = DgdYh.DataKeys(CInt(E.Item.ItemIndex))        Dim Cols As String() = {"@Yhxm", "@Yhzh", "@Yhmm", "@Qyzt"}
            Dim NumCols As Integer = E.Item.Cells.Count
            Dim I As Integer
            For i = 0 To NumCols
                Dim CurrentTextBox As TextBox = E.Item.Cells(i).Controls(0)
                Dim ColText = CurrentTextBox.Text
                MyCommand.Parameters(Cols(i)).Value = Server.HtmlEncode(ColText)
            Next
            MyCommand.Connection.Open()
            MyCommand.ExecuteNonQuery()
            DgdYh.EditItemIndex = -1
            MyCommand.Connection.Close()
        End Sub
      

  15.   

    Dim t As DataTable
    t.AcceptChanges()
    这样行吗?怎样实例化这个t呢