数据库表Banner中有两具字段:Position和URL,现在我想做更改Gridview中URL字段的功能:    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="AccessDataSource1" AutoGenerateEditButton="true" >
        <Columns>
        <asp:BoundField DataField="Position" ReadOnly="true" />
        <asp:ImageField DataImageUrlField="URL"  /> 
        <asp:CommandField EditText="EditText" UpdateText="UpdateText" SelectText="SelectText" />
        </Columns>
        </asp:GridView>    
        <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="/App_Data/heart.mdb"
            SelectCommand="SELECT * FROM [Banner]" UpdateCommand="Update [Banner] set URL=@URL where Position=@Position "></asp:AccessDataSource>
    </div>
    </form>
点“编辑”“更新”报出错“至少一个参数没有被指定值。 ”是怎么回事?

解决方案 »

  1.   

    UpdateCommand="Update [Banner] set URL=@URL where Position=@Position "
    你的数据源控件不对。重新添加数据源控件吧。
      

  2.   

            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="AccessDataSource2" AutoGenerateEditButton="True" DataKeyNames="Position" >
            <Columns>
                <asp:BoundField DataField="Position" HeaderText="Position" ReadOnly="True" SortExpression="Position" />
                <asp:BoundField DataField="URL" HeaderText="URL" SortExpression="URL" />
            </Columns>
            </asp:GridView>    &nbsp;
            <asp:AccessDataSource ID="AccessDataSource2" runat="server" DataFile="/App_Data/heart.mdb" SelectCommand="SELECT * FROM [Banner]" 
            UpdateCommand="UPDATE [Banner] SET URL =@URL Where Position=@Position">
                <UpdateParameters>
                    <asp:ControlParameter ControlID="GridView1" Name="URL"  />
                    <asp:ControlParameter ControlID="GridView1" Name="Position"  />
                </UpdateParameters>
            </asp:AccessDataSource>
    上面的代码,数据的显示是没问题了,但是更新还是报错:
    “操作必须使用一个可更新的查询”
      

  3.   


    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"  OnRowEditing="GridView_RowEditing" OnRowUpdating ="GridView_RowUpdating" OnRowCancelingEdit="GridView_RowCancelingEdit" 
                AutoGenerateColumns="False" BackColor="Transparent" DataKeyNames="Id" OnRowDataBound="GridView1_RowDataBound" OnSorting="GridView1_Sorting" Width="682px" style="text-align: left" ShowFooter="True">
      <Columns>
          <asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False" ReadOnly="True" SortExpression="Id" Visible="False" />
    ........
        Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs)
            GridView1.EditIndex = e.NewEditIndex
            bind()
        End Sub  '编辑
        Protected Sub GridView_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs)
           
    更新代码...
        End Sub  '更新    Protected Sub GridView1_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs)
            GridView1.EditIndex = -1
            bind()
        End Sub  '取消