0

私はMySqlにまったく慣れておらず、UpdateParametersでSqlDataSourceを使用したことがないので、おそらく非常に明白な何かが欠けています。

レコードを更新しようとすると、更新は行われますが、「ステートメントに「id」パラメーターがありません」というエラーがスローされます。したがって、クエリは機能し、データベースは正常に更新されますが、その後エラーがスローされます。

更新パラメーターは次のとおりです。

<UpdateParameters>
                <asp:Parameter Name="business_name" Type="string" Size="256" />
                <asp:Parameter Name="addr_line_1" Type="string" Size="256" />
                <asp:Parameter Name="addr_line_2" Type="string" Size="256" />
                <asp:Parameter Name="addr_line_3" Type="string" Size="256" />
                <asp:Parameter Name="postcode" Type="string" Size="32" />
                <asp:Parameter Name="county" Type="string" Size="128" />
                <asp:Parameter Name="town_city" Type="string" Size="256" />
                <asp:Parameter Name="tl_url" Type="string" Size="256" />
                <asp:Parameter Name="customer_id" Type="string" Size="16" />
                <asp:Parameter Name="region_id" Type="Int16" />
                <asp:Parameter Name="description" Type="string" Size="1024" />
                <asp:Parameter Name="approval_status" Type="string" Size="1" />
                <asp:Parameter Name="tl_user_name" Type="string" Size="256" />
                <asp:Parameter Name="phone"  Type="string" Size="50" />
                <asp:Parameter Name="uploaders_own" Type="Int16" />
            </UpdateParameters>

更新ステートメントは次のとおりです。

UPDATE myTable SET business_name = ?, addr_line_1 = ?, addr_line_2 = ?, addr_line_3 = ?, postcode = ?, county = ?, town_city = ?, tl_url = ?, customer_id = ?, region_id = ?, description = ?, approval_status = ?, tl_user_name = ?, phone = ?, uploaders_own = ? WHERE id = " + id

スタックトレースは次のとおりです。

[InvalidOperationException: 'id' parameter is missing at the statement]
   CoreLab.MySql.r.a() +775
   CoreLab.MySql.r.a(Int32& A_0, ArrayList& A_1) +448
   CoreLab.MySql.x.e() +398
   CoreLab.MySql.x.o() +89
   CoreLab.MySql.MySqlCommand.a(CommandBehavior A_0, IDisposable A_1, Int32 A_2, Int32 A_3) +1306
   CoreLab.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior) +310
   System.Data.Common.DbCommand.ExecuteReader() +12
   CoreLab.Common.DbCommandBase.ExecuteNonQuery() +64
   System.Web.UI.WebControls.SqlDataSourceView.ExecuteDbCommand(DbCommand command, DataSourceOperation operation) +386
   System.Web.UI.WebControls.SqlDataSourceView.ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) +325
   System.Web.UI.DataSourceView.Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) +92
   System.Web.UI.WebControls.DetailsView.HandleUpdate(String commandArg, Boolean causesValidation) +837
   System.Web.UI.WebControls.DetailsView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +509
   System.Web.UI.WebControls.DetailsView.OnBubbleEvent(Object source, EventArgs e) +95
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
   System.Web.UI.WebControls.DetailsViewRow.OnBubbleEvent(Object source, EventArgs e) +113
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
   System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +118
   System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +135
   System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

誰かが私が間違っていることを知っていますか?

ありがとう、

アネリー

4

1 に答える 1

1

言及されたクエリidパラメータの最後に。
しかし、それはどこかで定義されていないようです

于 2010-04-23T09:18:18.227 に答える