Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加记录时出错。程序或功能';InsertCurrencyRecord';应为参数'@PortfolioOwnerId';_C#_Asp.net_Sql Server_Stored Procedures - Fatal编程技术网

C# 添加记录时出错。程序或功能';InsertCurrencyRecord';应为参数'@PortfolioOwnerId';

C# 添加记录时出错。程序或功能';InsertCurrencyRecord';应为参数'@PortfolioOwnerId';,c#,asp.net,sql-server,stored-procedures,C#,Asp.net,Sql Server,Stored Procedures,第一个帖子在这里,所以我感谢你的耐心与我提前。让我的web应用程序执行插入存储过程让我疲惫不堪,我希望更多的眼睛可以帮助我 首先是我的存储过程 CREATE PROCEDURE dbo.InsertCurrencyRecord @SubCategoryId INT, @PortfolioOwnerId INT, @OwnerId INT, @ContactId INT, @LocationId INT, @Model VARCHAR(50), @Version V

第一个帖子在这里,所以我感谢你的耐心与我提前。让我的web应用程序执行插入存储过程让我疲惫不堪,我希望更多的眼睛可以帮助我

首先是我的存储过程

CREATE PROCEDURE dbo.InsertCurrencyRecord
    @SubCategoryId INT, @PortfolioOwnerId INT,
    @OwnerId INT, @ContactId INT,
    @LocationId INT,
    @Model VARCHAR(50), @Version VARCHAR(15) = NULL, 
    @Vendor VARCHAR(50), @AvailableDate DATE, 
    @EndOfProduction DATE, @EndOfSupport DATE,  
    @NumOfDevices VARCHAR(50), @Costs MONEY, 
    @UpgradeDuration INT,
    @Description VARCHAR(250), @SupportingComments VARCHAR(250)
AS
INSERT INTO dbo.Currency (SubCategoryId, PortfolioOwnerId, OwnerId, ContactId, LocationId, Model, Version, Vendor, AvailableDate, EndOfProduction, EndOfSupport, NumOfDevices, Costs, UpgradeDuration, Description, SupportingComments, ModifiedDate)
VALUES (@SubCategoryId, @PortfolioOwnerId, @OwnerId, @ContactId, @LocationId, @Model, @Version, @Vendor, @AvailableDate, @EndOfProduction, @EndOfSupport, @NumOfDevices, @Costs, @UpgradeDuration, @Description, @SupportingComments, GETDATE());
GO
第二个是asp.dropdownlists,我的一些参数应该来自这里。Subcategory ID似乎是作为第一个参数提供的,而PortfolioId的第二个参数则不是,尽管两者之间似乎没有什么不同

<td style="text-align: right">SubCategory:</td>
        <td>
            <%-- Confirm from database what max length is --%>
            <asp:DropDownList ID="DDSubCategory" runat="server" Height="20px" Width="175px" AutoPostBack="True">
            </asp:DropDownList>
            <asp:RequiredFieldValidator ID="SubCategoryValidator" runat="server" ControlToValidate="DDSubCategory" Display="Dynamic" ErrorMessage="SubCategory Required" ValidationGroup="AllValidators" ForeColor="Red">*</asp:RequiredFieldValidator>
        </td>
        <td style="text-align: right; width: 181px;">Portfolio Owner:</td>
        <td>
            <asp:DropDownList ID="DDPortfolioOwner" runat="server" Height="20px" Width="175px" AutoPostBack="True">
            </asp:DropDownList>
            <asp:RequiredFieldValidator ID="PortfolioOwnerValidator" runat="server" ControlToValidate="DDPortfolioOwner" Display="Dynamic" ErrorMessage="Portfolio Owner Required" ValidationGroup="AllValidators" ForeColor="Red">*</asp:RequiredFieldValidator>
        </td>
这里

您缺少Port文件夹中的
t


因此,过程“InsertCurrencyRecord”没有收到预期的参数
“@PortfolioOwnerId”

,读取这一点也可能是一个好主意:@JamesZ由于OP使用的是存储过程,因此AddWithValue可能发生的数据类型不匹配被大大减少。尽管我仍然喜欢在代码中明确表示:那是一个令人尴尬的第一个帖子。非常感谢您仔细查看这个并找到那个。
protected void SubmitBtn_Click(object sender, EventArgs e) {
        if (Page.IsValid) {
            string constr = ConfigurationManager.ConnectionStrings["CurrencyDb"].ConnectionString;
            SqlConnection con = new SqlConnection(constr);
            SqlCommand cmd = new SqlCommand("dbo.InsertCurrencyRecord", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@SubCategoryId", DDSubCategory.SelectedIndex);
            cmd.Parameters.AddWithValue("@PorfolioOwnerId", DDPortfolioOwner.SelectedIndex);
            cmd.Parameters.AddWithValue("@OwnerId", DDTechOwner.SelectedIndex);
            cmd.Parameters.AddWithValue("@ContactId", DDTechContact.SelectedIndex);
            cmd.Parameters.AddWithValue("@LocationId", DDBranch.SelectedIndex);
            cmd.Parameters.AddWithValue("@Model", ModelBox.Text);
            cmd.Parameters.AddWithValue("@Version", VersionBox.Text);
            cmd.Parameters.AddWithValue("@Vendor", VendorBox.Text);
            cmd.Parameters.AddWithValue("@AvailableDate", ProductAvailableBox.Text);
            cmd.Parameters.AddWithValue("@EndOfProduction", EndProductionBox.Text);
            cmd.Parameters.AddWithValue("@EndOfSupport", EndOfSupportBox.Text);
            cmd.Parameters.AddWithValue("@NumOfDevices", NumDevicesBox.Text);
            cmd.Parameters.AddWithValue("@Costs", UpgradeCostBox.Text);
            cmd.Parameters.AddWithValue("@UpgradeDuration", UpgradeDurationBox.Text);
            cmd.Parameters.AddWithValue("@Description", DescriptionBox.Text);
            cmd.Parameters.AddWithValue("@SupportingComments", NotesBox.Text);

            try {
                con.Open();
                cmd.ExecuteNonQuery();
                labelMessage.Text = "Your request has been submitted for review.";
            }
            catch (Exception ex) {
                throw new Exception("Error adding record. " + ex.Message);
            }
            finally {
                if (con != null)
                    con.Close();
            }
        }
cmd.Parameters.AddWithValue("@PorfolioOwnerId", DDPortfolioOwner.SelectedIndex)