我在一个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 = " <font size=4>下一页</font>"
students.PagerStyle.PrevPageText = "<br> <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到底是哪里错了呢?谢谢
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 = " <font size=4>下一页</font>"
students.PagerStyle.PrevPageText = "<br> <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到底是哪里错了呢?谢谢
加上这个