none
为过程或函数 指定了过多的参数? RRS feed

  • 问题



  • 该页面功能是:首先提供一个GridView查看商品列表,但是提供DetailsView编辑具体的商品和删除。删除没有问题,但是编辑后提示:“为过程或函数 修改商品存储过程 指定了过多的参数”,但是我提供的参数并没有多提供啊!

    存储过程:

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go
    
    
    
    -- =============================================
    -- Author:		<Author,,Name>
    -- Create date: <Create Date,,>
    -- Description:	<Description,,>
    -- =============================================
    ALTER PROCEDURE [dbo].[修改商品存储过程]
    	-- Add the parameters for the stored procedure here
    	@商品编号	int,
    	@商品名称	nvarchar(255),
    	@商品小图地址	nvarchar(255),
    	@商品大图地址	nvarchar(255),
    	@商品中图地址	nvarchar(255),
    	@商品规格	nvarchar(255),
    	@商品面料	nvarchar(255),
    	@商品A价	money,
    	@商品B价	money,
    	@商品类别编号	int,
    	@是否精品	bit,
    	@商品详细说明	varchar(8000),
    	@是否特价商品	bit,
    	@商品库存	int
    as	
    BEGin
        declare  @sql	varchar(8000)
        set @sql= 'UPdate 商品 set 商品名称='''+@商品名称+''',商品规格='''+@商品规格+''',商品面料='''+@商品面料+''',商品A价='+LTRIM(@商品A价)+',商品B价='+LTRIM(@商品B价)+',商品类别编号='+LTRIM(@商品类别编号)+',是否精品='+LTRIM(@是否精品)+',商品详细说明='+@商品详细说明+',是否特价商品='+LTRIM(@是否特价商品)+',商品库存='+LTRIM(@商品库存)
        if(@商品小图地址 <>'') set @sql=@sql+',商品小图地址='''+ @商品小图地址+''''
        if(@商品大图地址 <>'') set @sql=@sql+',商品大图地址='''+ @商品大图地址+''''
    	if(@商品中图地址 <>'') set @sql=@sql+',商品中图地址='''+ @商品中图地址+''''
        set @sql=@sql+' where 商品编号='+LTRIM(@商品编号)
        exec(@sql)
    end
    


    前台代码:
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="商品管理2.aspx.cs" Inherits="汇通玩具网站.admin.商城.商品管理2" %>
    
    <%@ Register Assembly="CuteEditor" Namespace="CuteEditor" TagPrefix="CE" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>商品管理</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                ConnectionString="<%$ ConnectionStrings:汇通玩具网站ConnectionString %>" 
                
                SelectCommand="SELECT 商品.商品编号, 商品.商品名称, 商品.商品规格, 商品.商品面料, 商品.商品A价, 商品.商品B价, 商品.是否精品, 商品.是否特价商品, 商品.商品库存, 商品类别.商品类别名称, 商品.商品小图地址, 商品.商品大图地址, 商品.商品中图地址, 商品.商品添加时间, 商品.商品添加IP FROM 商品 INNER JOIN 商品类别 ON 商品.商品类别编号 = 商品类别.商品类别编号"></asp:SqlDataSource>
            <br />
            <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
                AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="商品编号" 
                DataSourceID="SqlDataSource1" 
                onselectedindexchanged="GridView1_SelectedIndexChanged" 
                onrowediting="GridView1_RowEditing">
                <Columns>
                    <asp:CommandField SelectText="查看详细信息" ShowSelectButton="True" />
                    <asp:BoundField DataField="商品编号" HeaderText="商品编号" InsertVisible="False" 
                        ReadOnly="True" SortExpression="商品编号" />
                    <asp:ImageField DataImageUrlField="商品小图地址" HeaderText="商品小图">
                        <ControlStyle Height="100px" Width="100px" />
                    </asp:ImageField>
                    <asp:BoundField DataField="商品名称" HeaderText="商品名称" SortExpression="商品名称" />
                    <asp:BoundField DataField="商品类别名称" HeaderText="商品类别名称" 
                        SortExpression="商品类别名称" />
                    <asp:BoundField DataField="商品规格" HeaderText="商品规格" SortExpression="商品规格" />
                    <asp:BoundField DataField="商品面料" HeaderText="商品面料" SortExpression="商品面料" />
                    <asp:BoundField DataField="商品A价" HeaderText="商品A价" SortExpression="商品A价" />
                    <asp:BoundField DataField="商品B价" HeaderText="商品B价" SortExpression="商品B价" />
                    <asp:CheckBoxField DataField="是否精品" HeaderText="是否精品" SortExpression="是否精品" />
                    <asp:CheckBoxField DataField="是否特价商品" HeaderText="是否特价商品" 
                        SortExpression="是否特价商品" />
                    <asp:BoundField DataField="商品库存" HeaderText="商品库存" SortExpression="商品库存" />
                    <asp:BoundField DataField="商品添加时间" HeaderText="商品添加时间" 
                        SortExpression="商品添加时间" />
                    <asp:BoundField DataField="商品添加IP" HeaderText="商品添加IP" 
                        SortExpression="商品添加IP" />
                </Columns>
                <EmptyDataTemplate>
                    暂时没有商品
                </EmptyDataTemplate>
            </asp:GridView>
            <br />
            <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" 
                DataKeyNames="商品编号" DataSourceID="SqlDataSource2" Height="50px" 
                Width="1047px" onitemupdating="DetailsView1_ItemUpdating">
                <CommandRowStyle Width="30%" />
                <Fields>
                    <asp:BoundField DataField="商品编号" HeaderText="商品编号" InsertVisible="False" 
                        ReadOnly="True" SortExpression="商品编号" />
                    <asp:BoundField DataField="商品名称" HeaderText="商品名称" SortExpression="商品名称" />
                     <asp:TemplateField HeaderText="商品小图">
                        <EditItemTemplate>
                            <asp:FileUpload ID="商品小图上传" runat="server" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Image ID="商品小图" ImageUrl='<%#Bind("商品小图地址")%>' Width="100px" Height="100px" runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                     <asp:TemplateField HeaderText="商品大图">
                        <EditItemTemplate>
                            <asp:FileUpload ID="商品大图上传" runat="server" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Image ID="商品大图" ImageUrl='<%#Bind("商品大图地址")%>' Width="100px" Height="100px" runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                     <asp:TemplateField HeaderText="商品中图">
                        <EditItemTemplate>
                            <asp:FileUpload ID="商品中图上传" runat="server" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Image ID="商品中图" ImageUrl='<%#Bind("商品中图地址")%>' Width="100px" Height="100px" runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="商品规格" HeaderText="商品规格" SortExpression="商品规格" />
                    <asp:BoundField DataField="商品面料" HeaderText="商品面料" SortExpression="商品面料" />
                    <asp:BoundField DataField="商品A价" HeaderText="商品A价" SortExpression="商品A价" />
                    <asp:BoundField DataField="商品B价" HeaderText="商品B价" SortExpression="商品B价" />
                    <asp:TemplateField HeaderText="商品类别">
                        <EditItemTemplate>
                            <asp:DropDownList ID="商品分类" runat="server" DataSourceID="SqlDataSource3" SelectedValue='<%# Bind("商品类别编号") %>' DataTextField="商品类别名称" DataValueField="商品类别编号"></asp:DropDownList>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="商品类别名称" runat="server" Text='<%#Bind("商品类别名称")%>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                       <asp:TemplateField HeaderText="商品添加时间">
                          <EditItemTemplate>
                             <asp:TextBox ID="商品添加时间" Text='<%#DateTime.Now%> ' runat="server"></asp:TextBox>
                          </EditItemTemplate>
                         <ItemTemplate>
                            <asp:Label ID="商品添加时间" runat="server" Text='<%#Bind("商品添加时间")%>'></asp:Label>
                        </ItemTemplate>
                       </asp:TemplateField>
                    <asp:BoundField DataField="商品添加IP" HeaderText="商品添加IP" 
                        SortExpression="商品添加IP" />
                    <asp:CheckBoxField DataField="是否精品" HeaderText="是否精品" SortExpression="是否精品" />
                    <asp:TemplateField HeaderText="商品详细说明">
                        <EditItemTemplate>
                            <CE:Editor ID="商品详细说明" AutoConfigure="Simple" Text='<%#Bind("商品详细说明")%>' runat="server">
                            </CE:Editor>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="商品详细说明" runat="server" Text='<%#Bind("商品详细说明")%>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:CheckBoxField DataField="是否特价商品" HeaderText="是否特价商品" 
                        SortExpression="是否特价商品" />
                    <asp:BoundField DataField="商品库存" HeaderText="商品库存" SortExpression="商品库存" />
                    <asp:CommandField ButtonType="Button" HeaderText="编辑、更新" ShowEditButton="True" 
                        ShowHeader="True" ShowDeleteButton="True" />
                </Fields>
            </asp:DetailsView>
            <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
                ConnectionString="<%$ ConnectionStrings:汇通玩具网站ConnectionString %>" 
                
                SelectCommand="SELECT DISTINCT * FROM [商品] inner JOIN [商品类别] ON 商品.商品类别编号=商品类别.商品类别编号 WHERE ([商品编号] = @商品编号) order by 商品.商品添加时间 desc " 
                DeleteCommand="删除商品存储过程" DeleteCommandType="StoredProcedure" 
                UpdateCommand="修改商品存储过程" UpdateCommandType="StoredProcedure">
                <SelectParameters>
                    <asp:ControlParameter ControlID="GridView1" Name="商品编号" 
                        PropertyName="SelectedValue" Type="Int32" />
                </SelectParameters>
                <DeleteParameters>
                    <asp:ControlParameter ControlID="GridView1" Name="商品编号" 
                        PropertyName="SelectedValue" Type="Int32" />
                </DeleteParameters>
                <UpdateParameters>
                    <asp:ControlParameter ControlID="GridView1" Name="商品编号" 
                        PropertyName="SelectedValue" Type="Int32" />
                    <asp:Parameter Name="商品名称" Type="String" />
                    <asp:Parameter Name="商品小图地址" Type="String" />
                    <asp:Parameter Name="商品大图地址" Type="String" />
                    <asp:Parameter Name="商品中图地址" Type="String" />
                    <asp:Parameter Name="商品规格" Type="String" />
                    <asp:Parameter Name="商品面料" Type="String" />
                    <asp:Parameter Name="商品A价" Type="Decimal" />
                    <asp:Parameter Name="商品B价" Type="Decimal" />
                    <asp:Parameter Name="商品类别编号" Type="Int32" />
                    <asp:Parameter Name="是否精品" Type="Boolean" />
                    <asp:Parameter Name="商品详细说明" Type="String" />
                    <asp:Parameter Name="是否特价商品" Type="Boolean" />
                    <asp:Parameter Name="商品库存" Type="Int32" />
                </UpdateParameters>
            </asp:SqlDataSource>
            <br />
            <br />
                <asp:SqlDataSource ID="SqlDataSource3" runat="server" 
            ConnectionString="<%$ ConnectionStrings:汇通玩具网站ConnectionString %>" 
            SelectCommand="返回具有层次的商品类别" SelectCommandType="StoredProcedure">
        </asp:SqlDataSource>
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
            <br />
        
        </div>
        </form>
    </body>
    </html>
    
    后台代码:
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using CuteEditor;
    using CuteEditor.ImageEditor;
    using CuteEditorDemo;
    using NetSpell.SpellChecker;
    
    namespace 汇通玩具网站.admin.商城
    {
        public partial class 商品管理2 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
    
            protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
            {
                GridView1.Visible = false;
                DetailsView1.Visible = true;
            }
    
            protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
            {
                
            }
    
            protected void DetailsView1_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
            {
                //SqlDataSource2.UpdateParameters.Clear();
    
                FileUpload 商品小图 = (FileUpload)DetailsView1.FindControl("商品小图上传");
    
                if (商品小图.HasFile)
                {
                    string datetime = DateTime.Now.Date.ToString("yyyyMMdd");
                    string time = DateTime.Now.ToShortTimeString().Replace(":", "");
                    string 新文件名 = datetime + time + DateTime.Now.Millisecond.ToString();
                    string 文件名 = 商品小图.FileName;
                    string 文件大小 = 商品小图.PostedFile.ContentLength.ToString();
                    string 文件名后缀 = 文件名.Substring(文件名.LastIndexOf(".") + 1).ToLower();
    
                    string 小图上传完整路径 = Server.MapPath("上传图片/小图/") + 新文件名 + @"." + 文件名后缀;
                    商品小图.SaveAs(小图上传完整路径);
                    SqlDataSource2.UpdateParameters["商品小图地址"].DefaultValue = "上传图片/小图/" + 新文件名 + @"." + 文件名后缀;
    
                }
                else
                {
                    
                    SqlDataSource2.UpdateParameters["商品小图地址"].DefaultValue = "11";
                }
    
                FileUpload 商品大图 = (FileUpload)DetailsView1.FindControl("商品大图上传");
    
                if (商品大图.HasFile)
                {
                    string datetime = DateTime.Now.Date.ToString("yyyyMMdd");
                    string time = DateTime.Now.ToShortTimeString().Replace(":", "");
                    string 新文件名 = datetime + time + DateTime.Now.Millisecond.ToString();
                    string 文件名 = 商品大图.FileName;
                    string 文件大小 = 商品大图.PostedFile.ContentLength.ToString();
                    string 文件名后缀 = 文件名.Substring(文件名.LastIndexOf(".") + 1).ToLower();
    
                    string 大图上传完整路径 = Server.MapPath("上传图片/大图/") + 新文件名 + @"." + 文件名后缀;
                    商品大图.SaveAs(大图上传完整路径);
                    SqlDataSource2.UpdateParameters["商品大图地址"].DefaultValue = "上传图片/大图/" + 新文件名 + @"." + 文件名后缀;
                }
                else
                {
                    SqlDataSource2.UpdateParameters["商品大图地址"].DefaultValue = "22";
                }
    
                FileUpload 商品中图 = (FileUpload)DetailsView1.FindControl("商品中图上传");
    
                if (商品中图.HasFile)
                {
                    string datetime = DateTime.Now.Date.ToString("yyyyMMdd");
                    string time = DateTime.Now.ToShortTimeString().Replace(":", "");
                    string 新文件名 = datetime + time + DateTime.Now.Millisecond.ToString();
                    string 文件名 = 商品中图.FileName;
                    string 文件大小 = 商品中图.PostedFile.ContentLength.ToString();
                    string 文件名后缀 = 文件名.Substring(文件名.LastIndexOf(".") + 1).ToLower();
    
                    string 中图上传完整路径 = Server.MapPath("上传图片/中图/") + 新文件名 + @"." + 文件名后缀;
                    商品中图.SaveAs(中图上传完整路径);
                    SqlDataSource2.UpdateParameters["商品中图地址"].DefaultValue = "上传图片/中图/" + 新文件名 + @"." + 文件名后缀;
                }
                else
                {
                    SqlDataSource2.UpdateParameters["商品中图地址"].DefaultValue = "33";
                }
    
    
    
                Label1.Text = SqlDataSource2.UpdateParameters["商品编号"].DefaultValue;
    
                DetailsView1.Visible = false;
                GridView1.DataBind();
                GridView1.Visible = true;
    
            }
        }
    }
    


















    2010年2月13日 3:25

答案

  • <asp:TemplateField HeaderText="商品添加时间">
                          <EditItemTemplate>
                            <asp:TextBox ID="商品添加时间" Text=' <%#DateTime.Now%> ' runat="server"> </asp:TextBox>
                          </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="商品添加时间" runat="server" Text=' <%#Bind("商品添加时间")%>'> </asp:Label>
                        </ItemTemplate>
                      </asp:TemplateField>
                    <asp:BoundField DataField="商品添加IP" HeaderText="商品添加IP"
                        SortExpression="商品添加IP" />

    因为有了这个,要在存储过程里面加上这个参数。
    • 已标记为答案 yzjiujian 2010年2月13日 14:16
    2010年2月13日 14:16