0

我正在使用 ASP.net 3.5,我收到此错误。

Must declare the scalar variable "@Ad1".

我究竟做错了什么?

我的提交按钮

Protected Sub btnUpdate_Click

    Try
        AddressSRC.Update()
        lblResult.Visible = True

    Catch ex As Exception

        lblResult.Visible = True
        lblResult.Text = ex.Message

    End Try

    LoadData()

End Sub

我的 SQLDatasource 所在的 ASPX 页面 - 不过我有参数。

      <asp:SqlDataSource ID="AddressSRC" runat="server" 
            ConnectionString="<%$ ConnectionStrings:SLConn %>" 
            ProviderName="<%$ ConnectionStrings:SLConn.ProviderName %>" 

            UpdateCommand="UPDATE ADDRESS 
                           SET Address1 = @Ad1, Address2 = @Ad2
                           WHERE entityID = 'CRB'
                           AND addressID = @AdID ">
            <UpdateParameters>        
                <asp:ControlParameter ControlID="txtPaddress1" Name="Ad1" PropertyName="Text"  Type="String"/>
                <asp:ControlParameter ControlID="txtPaddress2" Name="Ad2" PropertyName="Text" Type="String" />
                <asp:ControlParameter ControlID="txtAddressID" Name="AdID" PropertyName="Text" Type="String" />
            </UpdateParameters>


        </asp:SqlDataSource>
4

3 回答 3

0

如果此源是数据绑定的,请确保数据绑定控件(即 GridView、ListView 等)已设置其 DataKeyNames 属性。就像是:

GridView1.DataKeyNames = new string[]{"KeyFieldName"};

编辑:如果一切都失败了,您可以手动添加参数:

Protected Sub btnUpdate_Click

    Try
        AddressSRC.UpdateParameters.Clear();
        AddressSRC.UpdateParameters.Add("Ad1",textPaddress1.Text);
        AddressSRC.UpdateParameters.Add("Ad2",textPaddress2.Text);
        AddressSRC.UpdateParameters.Add("AdID",textAddressID.Text);
        AddressSRC.Update()
        lblResult.Visible = True

    Catch ex As Exception

        lblResult.Visible = True
        lblResult.Text = ex.Message

    End Try

    LoadData()

End Sub
于 2009-07-24T15:01:05.100 回答
0

在我看来没问题。你能断点它并检查更新语句之前存在哪些参数吗?我看不出有什么明显的错误,所以在其他地方可能是一个愚蠢的错误。

于 2009-07-24T15:07:20.237 回答
0

艾艾艾…………我傻了。

我想在我的 PAGE LOAD 事件上放置一个 IF NOT ISPOSTBACK 语句,因为当我单击“提交”按钮时我从数据库重新加载了我的记录,并且它用旧记录更新了记录!

于 2009-07-28T00:06:19.383 回答