C# 向函数传递字符串时的StackOverflowException
我正在尝试调用Web服务中的函数。 相同的技术用于页面上的不同区域,但这一种似乎不起作用 这是aspx语法:C# 向函数传递字符串时的StackOverflowException,c#,web-services,stack-overflow,C#,Web Services,Stack Overflow,我正在尝试调用Web服务中的函数。 相同的技术用于页面上的不同区域,但这一种似乎不起作用 这是aspx语法: <asp:Repeater ID="rptDeleteTickets" runat="server"> <ItemTemplate> <asp:UpdatePanel ID="DeleteTicketUpdatePanel" runat="server"> <ContentTemplate>
<asp:Repeater ID="rptDeleteTickets" runat="server">
<ItemTemplate>
<asp:UpdatePanel ID="DeleteTicketUpdatePanel" runat="server">
<ContentTemplate>
<li>
<asp:Label ID="lblTicketDescD" runat="server" Text='<%# Eval("typ_omschr") %>' /></li>
<li style="border-bottom: 1px solid white;">
<asp:Label ID="lblTicketPriceD" runat="server" Text='<%# Eval("typ_prijs") %>' />
<asp:ImageButton ID="btnDeleteTicket" runat="server" ImageUrl="~/Images/minus.png" Width="20px"
OnCommand="btnDeleteTicket_Command" CommandName='<%# Eval("typ_id") %>' meta:resourcekey="btnDeleteTicketResource1" />
</li>
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
</asp:Repeater>
Web服务的联系方式如下:
webService.Festivals_DeleteTicketFestival("1", "3");
festival\u DeleteTicketFestival(字符串festId,字符串typed)
函数:
调试时,我可以看到festId和Typed在webservice中为null
[WebMethod]
public int Festivals_DeleteTicketFestival(String festId, String typId)
{
return Festivals_DeleteTicketFestival(festId, typId); //StackOverflowException shown here
}
public int deleteTicketFestival(String festId, String typId)
{
int deletedRows = -1;
try
{
sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["project"].ConnectionString);
sqlCommand = new SqlCommand("DeleteTicketFestival", sqlConnection);
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlAdapter = new SqlDataAdapter(sqlCommand);
sqlCommand.Parameters.Add(new SqlParameter("@festId", festId));
sqlCommand.Parameters.Add(new SqlParameter("@typId", typId));
sqlConnection.Open();
sqlTransaction = sqlConnection.BeginTransaction();
sqlCommand.Transaction = sqlTransaction;
deletedRows = sqlCommand.ExecuteNonQuery();
sqlTransaction.Commit();
}
catch (Exception e)
{
LoggingService.WriteLine(strApplicationName + " Delete festival ticket", e.Message);
if (sqlTransaction != null)
{
sqlTransaction.Rollback();
throw (e);
}
}
return deletedRows;
}
也许有经验的人能发现这个问题?
谢谢 您正在递归地调用自己,更改
返回节日\u DeleteTicketFestival(festId,typId)代码>至返回deleteTicketFestival(fastId,Typed)代码>您正在递归调用自己,更改返回节日\u删除ticketfestival(festId,typId)代码>至返回deleteTicketFestival(fastId,Typed)代码>
您递归地调用同一个函数,而没有结束条件(事实上,除了在函数中进行此递归调用外,您什么都不做)。这将导致StackOverflowException
如果你把它改成
return deleteTicketFestival(festID, TypID)
与此错误相关的问题应该得到解决
您递归地调用同一个函数,而没有结束条件(事实上,除了在函数中进行此递归调用外,您什么都不做)。这将导致StackOverflowException
如果你把它改成
return deleteTicketFestival(festID, TypID)
应该解决与此错误相关的问题。throw(e)代码>销毁堆栈跟踪。写抛出代码>抛出(e)代码>销毁堆栈跟踪。写抛出代码>。
return deleteTicketFestival(festID, TypID)