2009-07-24 4 views
0

ASP.net 3.5を使用していますが、このエラーが発生しています。VS2005とASP.netでスカラー変数 "@ Ad1"エラーを宣言する必要があります

Must declare the scalar variable "@Ad1". 

何が間違っていますか?

私は私のSqlDataSourceが座っている私のASPXページボタン

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 

を提出 - 私もparramatorsを持っています。

 <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> 

答えて

0

AI AI AI .........私は愚かでした。

私は[Submit]ボタンをクリックして古いレコードでレコードを更新したため、データベースからレコードを再ロードしたため、IF NOT ISPOSTBACKステートメントをPAGE LOADイベントに配置することになっていました。

0

このソースは、データ・バインドされた場合は、データバインドされたコントロール(すなわちGridViewコントロール、リストビューなど)が彼らのDataKeyNamesプロパティが設定されていることを確認してください。

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

EDIT:ような何か他のすべてが失敗した場合は、手動でパラメータを追加することができます

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 
+0

DataSourceはどのコントロールにもデータバインドされていません – Etienne

0

それは私にはOKに見えます。あなたはそれをブレークポイントし、更新ステートメントの直前にどのパラメータが存在するのか確認できますか?私は間違った何かを見ることができないので、他の場所では愚かな間違いかもしれません。

+0

私の理解によれば、SQLdatasourceでブレークポイントを設定することはできません – Etienne

+0

本当ですか? btnUpdate_Clickメソッドの開始時にブレークポイントを設定することはできませんか? –

+0

私はできますが、それは私に何を示しますか?どのようにSQLDataSourceを介して渡されるものを見ることができますか? – Etienne

関連する問題