代码如下:
                        <asp:FormView ID="FormView1" runat="server" DataKeyNames="gid" 
                            DataSourceID="SqlDataSource2" DefaultMode="Insert">
                            <InsertItemTemplate>
                            <asp:Button ID="btnsave" runat="server" Text="提交" CommandName="Insert" />
                            </InsertItemTemplate>
                        </asp:FormView>
                        <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
                            ConnectionString="<%$ ConnectionStrings:AdminString %>" 
                            DeleteCommand="DELETE FROM [Goods] WHERE [gid] = @gid" 
                            InsertCommand="INSERT INTO [Goods] ([gname], [number], [gxq], [gimage], [price], [gcpht], [tid]) VALUES (@gname, @number, @gxq, @gimage, @price, @gcpht, @tid)" 
                            SelectCommand="SELECT * FROM [Goods]" 
                            UpdateCommand="UPDATE [Goods] SET [gname] = @gname, [number] = @number, [gxq] = @gxq, [gimage] = @gimage, [price] = @price, [gcpht] = @gcpht, [tid] = @tid WHERE [gid] = @gid">
                            <DeleteParameters>
                                <asp:Parameter Name="gid" Type="Int32" />
                            </DeleteParameters>
                            <UpdateParameters>
                                <asp:Parameter Name="gname" Type="String" />
                                <asp:Parameter Name="number" Type="Int32" />
                                <asp:Parameter Name="gxq" Type="String" />
                                <asp:Parameter Name="gimage" Type="String" />
                                <asp:Parameter Name="price" Type="Double" />
                                <asp:Parameter Name="gcpht" Type="String" />
                                <asp:Parameter Name="tid" Type="Int32" />
                                <asp:Parameter Name="gid" Type="Int32" />
                            </UpdateParameters>
                            <InsertParameters>
                                <asp:Parameter Name="gname" Type="String" />
                                <asp:Parameter Name="number" Type="Int32" />
                                <asp:Parameter Name="gxq" Type="String" />
                                <asp:Parameter Name="gimage" Type="String" />
                                <asp:Parameter Name="price" Type="Double" />
                                <asp:Parameter Name="gcpht" Type="String" />
                                <asp:Parameter Name="tid" Type="Int32" />
                                <asp:ControlParameter ControlID="bookname" PropertyName="Text" Name="gname" Type="String" />
                                <asp:ControlParameter ControlID="booknum" Name="number" PropertyName="Text" Type="Int32" />
                                <asp:ControlParameter ControlID="FreeTextBox1" Name="gxq" PropertyName="Text" Type="String" />
                                <asp:ControlParameter ControlID="txtImageUrl" Name="gimage" PropertyName="Text" Type="String" />
                                <asp:ControlParameter ControlID="bookprice" Name="price" PropertyName="Text" Type="Double" />
                                <asp:ControlParameter ControlID="bookchuban" Name="gcpht" PropertyName="Text" Type="String" />
                                <asp:ControlParameter ControlID="DropDownList1" Name="tid" PropertyName="SelectedValue" Type="Int32" />
                            </InsertParameters>
                        </asp:SqlDataSource>

解决方案 »

  1.   

    执行结果是:报错,结果如下:
    代码如下:
                            <asp:FormView ID="FormView1" runat="server" DataKeyNames="gid" 
                                DataSourceID="SqlDataSource2" DefaultMode="Insert">
                                <InsertItemTemplate>
                                <asp:Button ID="btnsave" runat="server" Text="提交" CommandName="Insert" />
                                </InsertItemTemplate>
                            </asp:FormView>
                            <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
                                ConnectionString="<%$ ConnectionStrings:AdminString %>" 
                                DeleteCommand="DELETE FROM [Goods] WHERE [gid] = @gid" 
                                InsertCommand="INSERT INTO [Goods] ([gname], [number], [gxq], [gimage], [price], [gcpht], [tid]) VALUES (@gname, @number, @gxq, @gimage, @price, @gcpht, @tid)" 
                                SelectCommand="SELECT * FROM [Goods]" 
                                UpdateCommand="UPDATE [Goods] SET [gname] = @gname, [number] = @number, [gxq] = @gxq, [gimage] = @gimage, [price] = @price, [gcpht] = @gcpht, [tid] = @tid WHERE [gid] = @gid">
                                <DeleteParameters>
                                    <asp:Parameter Name="gid" Type="Int32" />
                                </DeleteParameters>
                                <UpdateParameters>
                                    <asp:Parameter Name="gname" Type="String" />
                                    <asp:Parameter Name="number" Type="Int32" />
                                    <asp:Parameter Name="gxq" Type="String" />
                                    <asp:Parameter Name="gimage" Type="String" />
                                    <asp:Parameter Name="price" Type="Double" />
                                    <asp:Parameter Name="gcpht" Type="String" />
                                    <asp:Parameter Name="tid" Type="Int32" />
                                    <asp:Parameter Name="gid" Type="Int32" />
                                </UpdateParameters>
                                <InsertParameters>
                                    <asp:Parameter Name="gname" Type="String" />
                                    <asp:Parameter Name="number" Type="Int32" />
                                    <asp:Parameter Name="gxq" Type="String" />
                                    <asp:Parameter Name="gimage" Type="String" />
                                    <asp:Parameter Name="price" Type="Double" />
                                    <asp:Parameter Name="gcpht" Type="String" />
                                    <asp:Parameter Name="tid" Type="Int32" />
                                    <asp:ControlParameter ControlID="bookname" PropertyName="Text" Name="gname" Type="String" />
                                    <asp:ControlParameter ControlID="booknum" Name="number" PropertyName="Text" Type="Int32" />
                                    <asp:ControlParameter ControlID="FreeTextBox1" Name="gxq" PropertyName="Text" Type="String" />
                                    <asp:ControlParameter ControlID="txtImageUrl" Name="gimage" PropertyName="Text" Type="String" />
                                    <asp:ControlParameter ControlID="bookprice" Name="price" PropertyName="Text" Type="Double" />
                                    <asp:ControlParameter ControlID="bookchuban" Name="gcpht" PropertyName="Text" Type="String" />
                                    <asp:ControlParameter ControlID="DropDownList1" Name="tid" PropertyName="SelectedValue" Type="Int32" />
                                </InsertParameters>
                            </asp:SqlDataSource>
      

  2.   

    结果是报错,代码如下:
    “/bookweb”应用程序中的服务器错误。
    --------------------------------------------------------------------------------变量名 '@gname' 已声明。变量名在查询批次或存储过程内部必须唯一。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 变量名 '@gname' 已声明。变量名在查询批次或存储过程内部必须唯一。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  
    求各位帮帮忙~~~
      

  3.   

    执行完语句清理下参数
    //更新Select语句 
      SqlDataSource1.SelectCommand = str; 
      SqlDataSource1.SelectParameters.Clear(); // 清理参数
      SqlDataSource1.SelectParameters.Add(cp);