<script runat="server">
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        If Not Page.IsPostBack Then
            LstAppCode_SelectedIndexChanged(sender, e)
        End If
    End Sub    Protected Sub LstAppCode_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        AccessDataSource2.SelectCommand = "SELECT * FROM [Banner] Where AppCode='" & LstAppCode.SelectedValue & "'"
        lblCaption.Text = LstAppCode.SelectedItem.Text
    End Sub    Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs)
        AccessDataSource2.SelectCommand = "SELECT * FROM [Banner] Where AppCode='" & LstAppCode.SelectedValue & "'"
    End Sub    Protected Sub GridView1_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs)
        AccessDataSource2.SelectCommand = "SELECT * FROM [Banner] Where AppCode='" & LstAppCode.SelectedValue & "'"
    End Sub    Protected Sub GridView1_RowUpdated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdatedEventArgs)
        AccessDataSource2.SelectCommand = "SELECT * FROM [Banner] Where AppCode='" & LstAppCode.SelectedValue & "'"
    End Sub</script><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        选择频道:<asp:DropDownList ID="LstAppCode" runat="server" AutoPostBack="true" OnSelectedIndexChanged="LstAppCode_SelectedIndexChanged" >
        <asp:ListItem Value="FZ">云南服装</asp:ListItem>
        <asp:ListItem Value="HZPZYX">云南化妆品专业线</asp:ListItem>
        <asp:ListItem Value="PE">云南普洱茶</asp:ListItem>
        <asp:ListItem Value="NY">云南内衣</asp:ListItem>
        <asp:ListItem Value="XY">云南鞋业</asp:ListItem>
        <asp:ListItem Value="HZPRH">云南化妆品(日化)</asp:ListItem>
        </asp:DropDownList><p><asp:Label runat="server" ID="lblCaption" Text="" /></p>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="AccessDataSource2" AutoGenerateEditButton="True" DataKeyNames="Position" OnRowEditing="GridView1_RowEditing" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowUpdated="GridView1_RowUpdated">
        <Columns>
            <asp:BoundField DataField="Position" HeaderText="广告位" ReadOnly="True" SortExpression="Position" />
            <asp:ImageField DataImageUrlField="URL" HeaderText="图片" >
                <ControlStyle Width="100%" />
            </asp:ImageField> 
            <asp:BoundField DataField="Link" HeaderText="链接" />
            <asp:BoundField DataField="AppCode" Visible="false" />
        </Columns>
        </asp:GridView>    &nbsp;
        <asp:AccessDataSource ID="AccessDataSource2" runat="server" DataFile="/App_Data/heart.mdb"
        UpdateCommand="UPDATE [Banner] SET URL =@URL,Link=@Link Where Position=@Position and AppCode=@AppCode">
            <UpdateParameters>
                <asp:ControlParameter ControlID="GridView1" Name="URL" Type="String" />
                <asp:ControlParameter ControlID="GridView1" Name="Position" Type="String"  />
                <asp:ControlParameter ControlID="GridView1" Name="Link" Type="String" />
                <asp:ControlParameter ControlID="GridView1" Name="AppCode" Type="string" />
            </UpdateParameters>
        </asp:AccessDataSource>
    </div>
    </form>
</body>
</html>
现在的问题是,当我点击“编辑”,并修改内容后点“更新”按钮,数据始终无法修改,仍是更新前的数据,这个是怎么回事?

解决方案 »

  1.   

    VB代码看不大明白,小弟不懂vb,呵呵,进来学习下,可能是更新了却没有绑定才在页面上面没有更新的吧,O(∩_∩)O~
      

  2.   

    UPDATE [Banner] SET URL =@URL,Link=@Link Where Position=@Position and AppCode=@AppCode
    这里有两个参数。。一般来说。只需要一个就OK。你这里用了两个。。那么。。只有满足这两个参数时才会更新。你可以去掉一个参数。还有。。这里一般用ID。如果上办法。解决不了。。重新修正下数据库加一个自增加的ID进去
      

  3.   

    解决了,Gridview设置的主键不对