0
저는 전에 MySql을 처음 사용 했었고 이전에 UpdateParameters와 함께 SqlDataSource를 사용하지 않았으므로 매우 분명하지는 않습니다.MySql 쿼리를 실행 한 후 매개 변수 오류가 누락되었습니다.
레코드를 업데이트하려고하면 업데이트가 수행되지만 "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>
업데이트 문은 다음과 같습니다 :
[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
사람이 내가 잘못 알고 있나요 : 여기
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
이 스택 트레이스의
이 사이트는 업데이트의 매개 변수는 ?
감사합니다, 언급 쿼리 id
매개 변수의 매우 끝에
Annelie
죄송합니다. id는 이전에 정의되었고, 단계별로 살펴보면 id라는 것을 알 수 있습니다 (올바른 레코드가 데이터베이스에서 업데이트되면 오류가 발생합니다). – annelie
@annelie ASP는 전혀 모르지만, 아마도'? '표시를 사용하여 다른 매개 변수와 동일한 방식으로 ID를 사용해야합니다. –
감사합니다. 트릭을 수행하는 것 같습니다! id는 잘 작동하는 select 쿼리에 대해 위의 방식으로 전달되므로 업데이트 할 때와 동일한 방법으로 ID에 전달해야한다고 가정했지만 분명히 그렇지 않은 것으로 가정했습니다. 도와 주셔서 정말 감사합니다! – annelie