【问题标题】:SQL Stored Procedure not recieving Parameter passed from VBSQL 存储过程未收到从 VB 传递的参数
【发布时间】:2016-07-13 12:42:54
【问题描述】:

因此,我一直在做的项目已经走到了尽头。我试图通过让用户在每个表单字段中输入数据来使搜索表单起作用,然后搜索所有特定字段。这应该返回所有适用的行。

发生的情况是,当用户运行搜索时,文本从表单域中取出,并带入 VB 进行验证,然后推送到存储过程中。但是,存储过程没有看到正在传递的参数。我尝试了几种不同的方法来尝试获取数据,但它并没有发生。当我用断点运行代码时,我可以看到文本被带入 VB 就好了,但它没有作为参数传递(事实上,我在断点窗口中找不到任何内容我的参数正在生成)

我收到的错误是:

程序或函数“SearchFarmStand”需要参数“@Farm_Business_Name”,但未提供该参数。

我已经尝试谷歌搜索几个小时来解决这个问题,但没有成功

我进行了很多编辑,希望能够让它发挥作用,但我没有成功。我尝试将参数的默认值设置为 NULL,但仍然没有获取参数,尽管它确实通过了该过程,但它什么也不返回。在 VB 方面,我还尝试了许多不同的方法来使用 cmd.Parameter.Add 和 cmd.Parameter.AddWithValue 来声明参数。我的代码显示了我最近一次获取参数的尝试。

任何帮助都会很棒,因为我完全被卡住了

以下是我的代码:

WebForm2.aspx

<form id="SearchForm" runat="server">
    <asp:Panel ID="SearchPanel" runat="server">
            <div role="group" class="threecolumn-container">
                <div class="threecolumn" style="order: 1;" runat="server">
                    Farm/Business Name:<br /><asp:Textbox CssClass="flex-stretch" ID="FarmBusinessNameSearch" runat="server"></asp:Textbox><br />
                    Farm/Business Owner:<br /><asp:Textbox CssClass="flex-stretch" ID="FarmOwnersSearch" runat="server"></asp:Textbox><br />
                    Full Address:<br /><asp:Textbox CssClass="flex-stretch" ID="FullFarmAddressSearch" runat="server"></asp:Textbox><br />
                    Address 1:<br /><asp:Textbox CssClass="flex-stretch" ID="Address1Search" runat="server"></asp:Textbox><br />
                    City:<br /><asp:Textbox CssClass="flex-stretch" ID="CitySearch" runat="server"></asp:Textbox><br />
                    State:<br /><asp:Textbox CssClass="flex-stretch" ID="StateSearch" runat="server"></asp:Textbox>
                </div>
                <div class="threecolumn" style="order: 2;"  runat="server">
                    Zip:<br /><asp:Textbox CssClass="flex-stretch" ID="ZipSearch" runat="server"></asp:Textbox><br />
                    County:<br /><asp:Textbox CssClass="flex-stretch" ID="CountySearch" runat="server"></asp:Textbox><br />
                    Phone:<br /><asp:Textbox CssClass="flex-stretch" ID="PhoneSearch" runat="server"></asp:Textbox><br />
                    Website:<br /><asp:Textbox CssClass="flex-stretch" ID="WebsiteSearch" runat="server"></asp:Textbox><br />
                    Email:<br /><asp:Textbox CssClass="flex-stretch" ID="EmailSearch" runat="server"></asp:Textbox>
                </div>
                <div class="threecolumn" style="order: 3;"  runat="server">
                    Dates Open:<br /><asp:Textbox CssClass="flex-stretch" ID="DatesOpenSearch" runat="server"></asp:Textbox><br />
                    Dates Closed:<br /><asp:Textbox CssClass="flex-stretch" ID="DatesClosedSearch" runat="server"></asp:Textbox><br />
                    Stand Open Time:<br /><asp:Textbox CssClass="flex-stretch" ID="StandOpenTimeSearch" runat="server"></asp:Textbox><br />
                    Stand Closed Time:<br /><asp:Textbox CssClass="flex-stretch" ID="StandCloseTimeSearch" runat="server"></asp:Textbox><br />
                    BIO:<br /><asp:Textbox CssClass="flex-stretch" ID="BIOSearch" runat="server"></asp:Textbox><br />
                    Open Ended Response:<br /><asp:Textbox CssClass="flex-stretch" ID="OpenEndedResponseSearch" runat="server"></asp:Textbox>
                </div>
            </div>
            <div class="clearfix"></div>
            <div role="group" class="fourcolumn-container">
                <div class="fourcolumn" style="order: 1;" runat="server">
                        <asp:CheckBox ID="VegetablesSearch" Text="Vegetables" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="GrainsSearch" Text="Grains" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="BreadBakedGoodsSearch" Text="Bread/Baked Goods" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="EggsSearch" Text="Eggs" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="MilksRawMilkSearch" Text="Milks/Raw Milk" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="CheeseSearch" Text="Cheese" runat="server"></asp:CheckBox>
                </div>
                <div class="fourcolumn" style="order: 2;" runat="server">
                        <asp:CheckBox ID="CiderApplesSearch" Text="Cider/Apples" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="HoneySearch" Text="Honey" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="WineHardCiderSearch" Text="Wine/Hard Cider" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="FruitsSearch" Text="Fruits" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="BerriesSearch" Text="Berries" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="MaplesSearch" Text="Maple Goods" runat="server"></asp:CheckBox>
                </div>
                <div class="fourcolumn" style="order: 3;" runat="server">
                        <asp:CheckBox ID="ChickenSearch" Text="Chicken" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="TurkeySearch" Text="Turkey" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="BeefSearch" Text="Beef" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="PorkSearch" Text="Pork" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="LambSearch" Text="Lamb" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="GoatSearch" Text="Goat" runat="server"></asp:CheckBox>
                </div>
                <div class="fourcolumn" style="order: 4;" runat="server">
                        <asp:CheckBox ID="WoolFiberSearch" Text="Wool Fiber" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="WoodProductsSearch" Text="Wood Products" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="FlowersSearch" Text="Flowers" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="CannedBottledGoodsSearch" Text="Canned/Bottled Goods" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="PlantSeedlingsStartsSearch" Text="Plant Seedlings/Starts" runat="server"></asp:CheckBox><br />
                        <asp:CheckBox ID="PlantsTreesSearch" Text="Plants/Trees" runat="server"></asp:CheckBox><br />
                </div>
            </div>
            <div class="clearfix"></div>
            <div class="onecolumn">
                Other:<br /><asp:Textbox CssClass="flex-stretch" ID="OtherSearch" runat="server"></asp:Textbox>
            </div>
            <div class="clearfix"></div>
            <div role="group" class="twocolumn-container">
                <div class="twocolumn" style="order: 1;" runat="server">
                    Certified Organic:<br /><asp:Textbox CssClass="flex-stretch" ID="CertifiedOrganicSearch" runat="server"></asp:Textbox><br />
                    Organic Certifier:<br /><asp:Textbox CssClass="flex-stretch" ID="OrganicCertifierSearch" runat="server"></asp:Textbox><br />
                    Other Farms Local:<br /><asp:Textbox CssClass="flex-stretch" ID="OtherFarmsLocalSearch" runat="server"></asp:Textbox><br />
                    Suplemental Catagories:<br /><asp:Textbox CssClass="flex-stretch" ID="SupplementalCatagoriesSearch" runat="server"></asp:Textbox><br />
                    Being Operation:<br /><asp:Textbox CssClass="flex-stretch" ID="BeginOperationSearch" runat="server"></asp:Textbox><br />
                    <asp:CheckBox ID="PickYourOwnSearch" Text="Pick Your Own" runat="server"></asp:CheckBox>
                    <br />
                    <asp:CheckBox ID="EBTSearch" Text="EBT" runat="server"></asp:CheckBox>
                </div>
                <div class="twocolumn" style="order: 2;" runat="server">
                    Staffed:<br /><asp:Textbox CssClass="flex-stretch" ID="StaffedSearch" runat="server"></asp:Textbox><br />
                    Customers Peak Season:<br /><asp:Textbox CssClass="flex-stretch" ID="CustomersPeakSeasonSearch" runat="server"></asp:Textbox><br />
                    Customers 2015:<br /><asp:Textbox CssClass="flex-stretch" ID="Customers2015Search" runat="server"></asp:Textbox><br />
                    Customers 2014:<br /><asp:Textbox CssClass="flex-stretch" ID="Customers2014Search" runat="server"></asp:Textbox><br />
                    Percent Self Produced:<br /><asp:Textbox CssClass="flex-stretch" ID="PercentSelfProducedSearch" runat="server"></asp:Textbox><br />
                    <asp:CheckBox ID="SellOtherFarmsSearch" Text="Sell Other Farms" runat="server"></asp:CheckBox>
                    <br />
                    <asp:CheckBox ID="LiabilityInsuranceSearch" Text="Liability Insurance" runat="server"></asp:CheckBox>
                </div>
            </div>
            <div class="clearfix"></div>
        <asp:Button ID="SearchButton" runat="server" Text="Search"/> &ensp; <asp:Button ID="ShowAllButton" runat="server" Text="Show All Farmstands"/>
    </asp:Panel>

下面存在另一个面板用于显示我的数据,以及另一个用于存储返回的搜索数据的数据列表。

WebForm2.aspx.VB 更新后的代码

Protected Sub SearchClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles SearchButton.Click

    Dim sqlConnection1 As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("FSDATA").ConnectionString)
    Dim cmd As New SqlCommand

    cmd.CommandText = "SearchFarmStand"
    cmd.CommandType = System.Data.CommandType.StoredProcedure
    cmd.Connection = sqlConnection1

    'TEXTBOXES
    Dim Farm_Bussiness_Name As SqlParameter = New SqlParameter(
        "@Farm_Business_Name", SqlDbType.NVarChar, 255)
    Farm_Bussiness_Name.Value = FarmBusinessNameSearch.Text
    cmd.Parameters.Add(Farm_Bussiness_Name)
    Dim Farm_Owners As SqlParameter = New SqlParameter(
        "@Farm_Owners", SqlDbType.NVarChar, 255)
    Farm_Owners.Value = FarmOwnersSearch.Text
    cmd.Parameters.Add(Farm_Owners)
    Dim Full_Farm_Address As SqlParameter = New SqlParameter(
        "@Full_Farm_Address", SqlDbType.NVarChar, 255)
    Full_Farm_Address.Value = FullFarmAddressSearch.Text
    cmd.Parameters.Add(Full_Farm_Address)
    Dim Address_1 As SqlParameter = New SqlParameter(
        "@Address_1", SqlDbType.NVarChar, 255)
    Address_1.Value = Address1Search.Text
    cmd.Parameters.Add(Address_1)
    Dim City As SqlParameter = New SqlParameter(
        "@City", SqlDbType.NVarChar, 255)
    City.Value = CitySearch.Text
    cmd.Parameters.Add(City)
    Dim State As SqlParameter = New SqlParameter(
        "@State", SqlDbType.NVarChar, 255)
    State.Value = StateSearch.Text
    cmd.Parameters.Add(State)
    If DatesOpenSearch.Text <> "" Then
        Dim time As DateTime = DateTime.Parse(DatesOpenSearch.Text)
        Dim Dates_Open As SqlParameter = New SqlParameter(
        "@Dates_Open", SqlDbType.DateTime)
        Dates_Open.Value = time
        cmd.Parameters.Add(Dates_Open)
    Else
        Dim Dates_Open As SqlParameter = New SqlParameter(
        "@Dates_Open", SqlDbType.DateTime)
        Dates_Open.Value = DBNull.Value
        cmd.Parameters.Add(Dates_Open)
    End If
    If DatesClosedSearch.Text <> "" Then
        Dim time As DateTime = DateTime.Parse(DatesClosedSearch.Text)
        Dim Dates_Closed As SqlParameter = New SqlParameter(
        "@Dates_Closed", SqlDbType.DateTime)
        Dates_Closed.Value = time
        cmd.Parameters.Add(Dates_Closed)
    Else
        Dim Dates_Closed As SqlParameter = New SqlParameter(
        "@Dates_Closed", SqlDbType.DateTime)
        Dates_Closed.Value = DBNull.Value
        cmd.Parameters.Add(Dates_Closed)
    End If

    ... More Textbox Dims...

    'CHECKBOXES
    If VegetablesSearch.Checked = "True" Then
        Dim Vegetables As SqlParameter = New SqlParameter(
        "@Vegetables", SqlDbType.Bit)
        Vegetables.Value = VegetablesSearch.Checked
        cmd.Parameters.Add(Vegetables)
    Else
        Dim Vegetables As SqlParameter = New SqlParameter(
        "@Vegetables", SqlDbType.Bit)
        Vegetables.Value = VegetablesSearch.Checked
        cmd.Parameters.Add(Vegetables)
    End If
    If GrainsSearch.Checked = "True" Then
        Dim Grains As SqlParameter = New SqlParameter(
        "@Grains", SqlDbType.Bit)
        Grains.Value = GrainsSearch.Checked
        cmd.Parameters.Add(Grains)
    Else
        Dim Grains As SqlParameter = New SqlParameter(
        "@Grains", SqlDbType.Bit)
        Grains.Value = GrainsSearch.Checked
        cmd.Parameters.Add(Grains)
    End If

    ...More Checkbox Dims...

    DataList1.Visible = "False"
    DataList2.Visible = "True"
    sqlConnection1.Open()
    cmd.ExecuteNonQuery()
    sqlConnection1.Close()
End Sub

存储过程 SearchFarmStand.sql 已更新

USE [FSDATA3]
GO    
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SearchFarmStand]
@Farm_Business_Name nvarchar(255),
@Farm_Owners nvarchar(255),
@Full_Farm_Address nvarchar(255),
@Address_1 nvarchar(255),
@City nvarchar(255),
@State nvarchar(255),
@Zip nvarchar(5),
@County nvarchar(255),
@Phone nvarchar(255),
@Website nvarchar(255),
@Email nvarchar(255),
@Dates_Open datetime = NULL,
@Dates_Closed datetime = NULL,
@Stand_Open_Time nvarchar(255),
@Stand_Close_Time nvarchar(255),
@BIO nvarchar(MAX),
@Open_Ended_Response nvarchar(255),
@Vegetables bit,
@Grains bit,
@Bread_Baked_Goods bit,
@Eggs bit,
@Milks_Raw_Milk bit,
@Cheese bit,
@Cider_Apples bit,
@Honey bit,
@Wine_Hard_Cider bit,
@Fruits bit,
@Berries bit,
@Chicken bit,
@Turkey bit,
@Beef bit,
@Pork bit,
@Lamb bit,
@Goat bit,
@Wool_Fiber bit,
@Wood_Products bit,
@Flowers bit,
@Canned_Bottled_Goods bit,
@Maples bit,
@Plant_Seedlings_Starts bit,
@Plants_Trees bit,
@Other nvarchar(255),
@Pick_Your_Own bit,
@Certified_Organic nvarchar(255),
@Organic_Certifier nvarchar(255),
@Sell_Other_Farms bit,
@Other_Farms_Local nvarchar(255),
@Supplemental_Catagories nvarchar(255),
@Begin_Operation float,
@Staffed nvarchar(255),
@Liability_Insurance bit,
@Customers_Peak_Season float,
@Customers_2015 float,
@Customers_2014 float,
@Percent_Self_Produced nvarchar(255),
@EBT bit
AS
BEGIN
SET NOCOUNT ON;

DECLARE @ODate DATETIME
DECLARE @CDate DATETIME

SET @ODate = ISNULL(@Dates_Open, GETDATE())
SET @CDate = ISNULL(@Dates_Closed, GETDATE())

SELECT * FROM FSDATA WHERE
Farm_Business_Name LIKE '%' + ISNULL(@Farm_Business_Name, Farm_Business_Name) + '%' and
Farm_Owners LIKE '%' + ISNULL(@Farm_Owners, Farm_Owners) + '%' and
Full_Farm_Address LIKE '%' + ISNULL(@Full_Farm_Address, Full_Farm_Address) + '%' and
Address_1 LIKE '%' + ISNULL(@Address_1, Address_1) + '%' and
City LIKE '%' + ISNULL(@City, City) + '%' and
State LIKE '%' + ISNULL(@State, State) + '%' and
Zip LIKE '%' + ISNULL(@Zip, Zip) + '%' and
County LIKE '%' + ISNULL(@County, County) + '%' and
Phone LIKE '%' + ISNULL(@Phone, Phone) + '%' and
Website LIKE '%' + ISNULL(@Website, Website) + '%' and
Email LIKE '%' + ISNULL(@Email, Email) + '%' and
Dates_Open = @ODate and
Dates_Closed = @CDate and
Stand_Open_Time LIKE '%' + ISNULL(@Stand_Open_Time, Stand_Open_Time) + '%' and
Stand_Close_Time LIKE '%' + ISNULL(@Stand_Close_Time, Stand_Close_Time) + '%' and
BIO LIKE '%' + ISNULL(@BIO, BIO) + '%' and
Open_Ended_Response LIKE '%' + ISNULL(@Open_Ended_Response, Open_Ended_Response) + '%' and
Vegetables = @Vegetables and
Grains = @Grains and
Bread_Baked_Goods = @Bread_Baked_Goods and
Eggs = @Eggs and
Milks_Raw_Milk = @Milks_Raw_Milk and
Cheese = @Cheese and
Cider_Apples = @Cider_Apples and
Honey = @Honey and
Wine_Hard_Cider = @Wine_Hard_Cider and
Fruits = @Fruits and
Berries = @Berries and
Chicken = @Chicken and
Turkey = @Turkey and
Beef = @Beef and
Pork = @Pork and
Lamb = @Lamb and
Goat = @Goat and
Wool_Fiber = @Wool_Fiber and
Cheese = @Cheese and
Wood_Products = @Wood_Products and
Flowers = @Flowers and
Canned_Bottled_Goods = @Canned_Bottled_Goods and
Maples = @Maples and
Plant_Seedlings_Starts = @Plant_Seedlings_Starts and
Plants_Trees = @Plants_Trees and
Other LIKE '%' + ISNULL(@Other, Other) + '%' and
Pick_Your_Own = @Pick_Your_Own and
Certified_Organic LIKE '%' + ISNULL(@Certified_Organic, Certified_Organic) + '%' and
Organic_Certifier LIKE '%' + ISNULL(@Organic_Certifier, Organic_Certifier) + '%' and
Sell_Other_Farms = @Sell_Other_Farms and
Other_Farms_Local LIKE '%' + ISNULL(@Other_Farms_Local, Other_Farms_Local) + '%' and
Supplemental_Catagories LIKE '%' + ISNULL(@Supplemental_Catagories, Supplemental_Catagories) + '%' and
Begin_Operation = @Begin_Operation and
Staffed LIKE '%' + ISNULL(@Staffed, Staffed) + '%' and
Liability_Insurance = @Liability_Insurance and
Customers_Peak_Season = @Customers_Peak_Season and
Customers_2015 = @Customers_2015 and
Customers_2014 = @Customers_2014 and
Percent_Self_Produced LIKE '%' + ISNULL(@Percent_Self_Produced, Percent_Self_Produced) + '%' and
EBT = @EBT
END

堆栈跟踪

[SqlException (0x80131904): Procedure or function 'SearchFarmStand' expects parameter '@Farm_Business_Name', which was not supplied.]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +2434922
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +5736592
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +285
System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) +3731
System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() +58
System.Data.SqlClient.SqlDataReader.get_MetaData() +89
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +379
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest) +2026
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) +375
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +53
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +240
System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +41
System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +12
System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +139
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +136
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +86
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1494
System.Web.UI.WebControls.BaseDataList.GetData() +58
System.Web.UI.WebControls.DataList.CreateControlHierarchy(Boolean useDataSource) +294
System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e) +64
System.Web.UI.WebControls.BaseDataList.DataBind() +81
System.Web.UI.WebControls.BaseDataList.EnsureDataBound() +62
System.Web.UI.WebControls.BaseDataList.CreateChildControls() +69
System.Web.UI.Control.EnsureChildControls() +92
System.Web.UI.Control.PreRenderRecursiveInternal() +42
System.Web.UI.Control.PreRenderRecursiveInternal() +160
System.Web.UI.Control.PreRenderRecursiveInternal() +160
System.Web.UI.Control.PreRenderRecursiveInternal() +160
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +883

【问题讨论】:

  • 我在 ASPX 代码中没有看到对 SearchClick 方法的任何引用。您是否忘记添加“OnClick=SearchClick”部分?同样在 SearchClick 方法中,我看到很多不必要的代码,但没有调用 cmd.ExecuteNonQuery
  • 你在哪里执行你的SqlCommand(即cmd.ExecuteNonQuery();)?我看到你打开连接然后立即关闭它。
  • @Steve 如果你的意思是: 那么不,我没有在运行 VB 时包含 OnClick=SearchClick正好。当我运行调试器并抛出一个断点,它从 SearchClick 事件中的 FarmBussinesNameSearch 字段中抓取文本时,它仍然会触发并抓取文本。我的问题似乎在于存储过程看到的参数。刚刚对其进行了测试以确定,是的,即使使用 OnClick 事件,结果也是一样的。
  • @zgood 哇,我都没注意到,让我继续测试一下,我会回复你的
  • 啊明白了......“@Farm_Bussines_Name”,注意“Bussines”中的两个 s,存储过程不喜欢你的拼写;-)..... 是只是一个错字,你可以删除问题

标签: mysql asp.net vb.net stored-procedures visual-studio-2015


【解决方案1】:

所以我弄清楚发生了什么。我有一个额外的 SQLDataSource 被设置为提取存储过程,但是在 sqldatasource 中没有设置参数。这与我为创建参数而创建的 VB 是分开的。我所做的是删除了不必要的 sqldatasource,我的代码现在可以正常运行了。

【讨论】:

    【解决方案2】:
    <asp:CheckBox ID="VegetablesSearch" Text="Vegetables" runat="server"></asp:CheckBox><br />
    
    If VegetablesSearch.Text = "True"
    

    是什么让你认为 CheckBox 的文本会是“True”?

    【讨论】:

    • 这是我的第一个 VB 项目之一,所以我边走边学。在尝试了主要帖子中建议的修复后,我更新了我的代码,以更好地反映它应该如何查看复选框。然而,这并没有回答我上面列出的问题。谢谢
    • 您是否仍然收到参数丢失错误?您是否设置了断点并单步执行代码以确保按预期构建和添加参数?
    • 嘿,我之前使用了断点并检查了是否设置了值,但我在参数列表下找不到@Farm_Business_Name id。有没有特定的地方可以查看参数?
    • 您需要在构建@Farm_Business_Name 参数的代码之前下断点,然后继续按F10 以查看参数是否实际正在构建并添加您期望的值。
    • 你好。所以我再次执行断点,我可以看到 Farm_Business_Name 正在设置并且属于 System.Data.SqlClient.SqlParameter 类型。当我深入研究名称时,我可以看到参数名称设置为“@Farm_Business_Name”,并且具有我在文本框中键入的任何内容的 sql 值。但是,我仍然收到错误消息。
    猜你喜欢
    • 1970-01-01
    • 2017-08-12
    • 2019-11-02
    • 1970-01-01
    • 2014-07-07
    • 2012-08-09
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多