我在一个DATAGRID中绑定了两个表的内容,已经实现了,我先给出绑定的代码:
Dim constr As String = "server=192.168.0.1;database=netconfer;user id=maverickps;password=zsjyc;"
        Dim sqlstr As String = "select stuinfos.student_no,stuinfos.student_name,stuinfos.student_sex,stuinfos.student_xy,stuinfos.student_sfzh,stuinfos.student_zy,stuinfos.student_year,confers.confer_status,confers.dw_mc,confers.dw_xz,confers.dw_ls,confers.pqdw_mc,confers.dw_jjlx from StuInfos,confers where stuinfos.student_sfzh=confers.student_sfzh order by stuinfos.status"
        Dim objconn As New SqlConnection(constr)
        Dim objdataset As New DataSet
        Dim objAdapter As New SqlDataAdapter(sqlstr, objconn)        objAdapter.Fill(objdataset, "StuInfos")        '分页代码
        students.PagerStyle.NextPageText = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font size=4>下一页</font>"
        students.PagerStyle.PrevPageText = "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font size=4>上一页</font>"        students.DataSource = objdataset.Tables.Item("StuInfos")        students.DataBind()我是用DATAGRID来更新数据库的内容,.aspx页面中的代码:(代码太长,给贴一部分)<asp:DataGrid CssClass="input3" id="students" runat="server" Width="1600px" AutoGenerateColumns="False" AllowPaging="True" PageSize="30" OnPageIndexChanged="gridpagechange" DataKeyField="student_no"cellpadding="5">
<Columns><asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="修改"></asp:EditCommandColumn>
<asp:BoundColumn DataField="student_no" ReadOnly="True" HeaderText="学号">
<ItemStyle Width="15px"></ItemStyle></asp:BoundColumn>
<asp:TemplateColumn HeaderText="姓名">
<ItemTemplate>
<asp:Label ID="lblxm" runat="server" text='<%# container.dataitem("student_name") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtxm" runat="server" CssClass="input3" Columns="6" Text='<%# Container.dataitem("student_name")%>' />
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Position="Top" CssClass="input3"></PagerStyle>
</asp:DataGrid>比如就更新xm这个字段:
我是通过DataKeyField="student_no" 这个值来更新数据库中的数据,以前一个表的时候没有问题,可以更新,但是现在是两个表就不行了,下面是更新代码:
Sub gridpagechange(ByVal s As Object, ByVal e As DataGridPageChangedEventArgs)
        students.CurrentPageIndex = e.NewPageIndex
        datafiller()
    End Sub
    Private Sub students_editcommand(ByVal s As Object, ByVal e As DataGridCommandEventArgs) Handles students.EditCommand
        students.EditItemIndex = e.Item.ItemIndex
        datafiller()
    End Sub    Private Sub students_cancelcommand(ByVal s As Object, ByVal e As DataGridCommandEventArgs) Handles students.CancelCommand
        students.EditItemIndex = -1
        datafiller()
    End Sub
    Private Sub students_updatecommand(ByVal s As Object, ByVal e As DataGridCommandEventArgs) Handles students.UpdateCommand
        '取得所编辑行Key值,成功。
        Dim key As String = students.DataKeys(e.Item.ItemIndex)        '取得编辑行修改值,成功。
        Dim xm As String        xm = CType(e.Item.FindControl("txtxm"), TextBox).Text.Trim        Try            '设置数据链接,更新数据库
            Dim Upstr As String = "server=192.168.0.1;database=netconfer;user id=maverickps;password=zsjyc;"
            Dim upconstr As String = "select * from stuinfos where student_no='" + key + "'"
            Dim upobjconn As New SqlConnection(Upstr)
            Dim upAdapter As New SqlDataAdapter(upconstr, upobjconn)
            Dim updataset As New DataSet            upAdapter.Fill(updataset, "StuInfos")
            updataset.Tables("StuInfos").Rows(0)("student_name") = xm            Dim dd As New SqlCommandBuilder(upAdapter)
            upAdapter.Update(updataset, "StuInfos")            students.EditItemIndex = -1
            datafiller()
        Catch ex As Exception
            Response.Write("<script>window.alert('数据更新错误!')</script>")
        End Try
    End Sub到底是哪里错了呢?谢谢