<asp:GridView ID="gv" ........./><asp:DetailsView ID="dv" runat="server" DataSourceID="ds"/>
<Fields>
<asp:BoundField DataField="bb" HeaderText="bb" SortExpression="bb" />
<asp:BoundField DataField="cc" HeaderText="cc" SortExpression="cc" />
<asp:BoundField DataField="dd" HeaderText="dd" SortExpression="dd" />
<asp:BoundField DataField="ee" HeaderText="ee" SortExpression="ee" />
</Fields>
</asp:DetailsView><asp:AccessDataSource runat="server" ..........
SelectCommand="SELECT aa, bb, cc, dd, ee, ff FROM A WHERE (aa=@aa)"
InsertCommand="INSERT INTO A (bb, cc, dd, ee, ff) VALUES (@bb, @cc, @dd, @ee, @ff)"
<SelectParameters>
<asp:ControlParameter ControlID="gv" Name="aa" PropertyName="SelectedValue" Type="String" />
</SelectParameters>
<InsertParameters>
<asp:ControlParameter ControlID="gv" Name="ff" PropertyName="SelectedValue" Type="String" />
</InsertParameters>
</asp:AccessDataSource>   dv执行插入操作异常, dv只有4个可见字段bb、cc、dd、ee, 在插入时, 我需要加一个ff, ff为gv.SelectedValue大虾们, 为达到目的该怎么做?

解决方案 »

  1.   

    -_-!好像很容易呀,一个挺入语句exe下那个sql就行了
      

  2.   

    可是,插入时出现了异常, 如果将InsertCommand改成INSERT INTO A (bb, cc, dd, ee, ff) VALUES (@bb, @cc, @dd, @ee, 1)", 就可以, 这好象说明参数用法不正确, 我才开始用ASP.net
      

  3.   

    添加不可见的字段绑定试试呢?<asp:DetailsView ID="dv" runat="server" DataSourceID="ds"/>
    <Fields>
    <asp:BoundField DataField="bb" HeaderText="bb" SortExpression="bb" />
    <asp:BoundField DataField="cc" HeaderText="cc" SortExpression="cc" />
    <asp:BoundField DataField="dd" HeaderText="dd" SortExpression="dd" />
    <asp:BoundField DataField="ee" HeaderText="ee" SortExpression="ee" />
    <asp:BoundField DataField="ff" Visible="False" />
    </Fields>
    </asp:DetailsView>
      

  4.   

    大哥,难道 Insert 中的其他参数你就不指定了吗?什么异常也不说 ....是不是告诉 什么什么参数没有提供啊
      

  5.   

    <InsertParameters>
                <asp:Parameter Name="bb"   Type="String" />
                <asp:Parameter Name="cc"  Type="String" />
                <asp:Parameter Name="dd"    Type="String" />
                <asp:Parameter Name="ee"       Type="String" />
    <asp:ControlParameter ControlID="gv" Name="ff" PropertyName="SelectedValue" Type="String" />
              </InsertParameters>
    注意,以上的 Type 根据实际参数数据类型修改之
      

  6.   

    标准表达式中数据类型不匹配。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 标准表达式中数据类型不匹配。
      

  7.   

    <asp:ControlParameter ControlID="gv" Name="ff" PropertyName="SelectedValue" Type="String" />改为<asp:ControlParameter ControlID="gv" Name="ff" PropertyName="SelectedValue" Type="Int" />
      

  8.   

    To: Jinglecat(晓风残月 >> 问题需简洁,错误要详细,需求得明确) Sorry, 你的方法是正确的, 我开始代码没改过来.有几个问题再问一下:
     <asp:SqlDataSource ID="SqlDataSource1" Runat="server" SelectCommand="SELECT [au_id], [au_lname], [au_fname], [phone], [address], [city], [state], [zip], [contract] FROM [authors]"
            UpdateCommand="UPDATE [authors] SET [au_lname] = @au_lname, [au_fname] = @au_fname, [phone] = @phone, [address] = @address, [city] = @city, [state] = @state, [zip] = @zip, [contract] = @contract WHERE [au_id] = @au_id"
            ConnectionString="<%$ ConnectionStrings:Pubs %>" />
    这是ASP示列里面的, 它的更新操作, 没有给出一个参数, 同样可以起效, 为什么? <asp:Parameter Name="bb"   Type="String" />
    参数中的类型, 用来做什么, 我的数据库中bb的实际类型为日期型, 可是, 我使用的Type="String", 一样可以用, 这又是为什么?