C# 错误:输入字符串的格式不正确。“在eCommandArgument行C上。”
我在这个问题的标题上加了一个错误 下面的代码出错。输入字符串的格式不正确 错误发生在这一行:C# 错误:输入字符串的格式不正确。“在eCommandArgument行C上。”,c#,asp.net,C#,Asp.net,我在这个问题的标题上加了一个错误 下面的代码出错。输入字符串的格式不正确 错误发生在这一行: int index = Convert.ToInt32(e.CommandArgument.ToString()); 如何解决此错误 aspx页面: <asp:Content ID="MyMainPage" ContentPlaceHolderID="MMain" Runat="Server"> <div id="awindow" > <asp
int index = Convert.ToInt32(e.CommandArgument.ToString());
如何解决此错误
aspx页面:
<asp:Content ID="MyMainPage" ContentPlaceHolderID="MMain" Runat="Server">
<div id="awindow" >
<asp:Panel ID="Panel1" runat="server" CssClass="main">
<div style="width: 100%; float: left">
<asp:TextBox runat="server" style="margin-left:5px; float:left;" ID="newauthor" />
<asp:ImageButton runat="server" ID="addauthor" Height="17px" ToolTip="Add a new author" ImageUrl="~/siteimages/Addbuttons/add.png" OnClick="AddAuthor_Click"/>
<asp:TextBox runat="server" ID="txtAuthor" Text='<%# Bind("Author") %>' />
<asp:Button ID="btnFindAuthor" runat="server" Text="Author Quick Find" CommandName="Select" OnCommand="btnFindAuthor_Click" />
<ajaxToolkit:AutoCompleteExtender ID="authors" runat="server" DelimiterCharacters="" Enabled="True" ServicePath="~/WebServices/authorsearchdisplay.asmx" ServiceMethod="AutoComplete" TargetControlID="authors" MinimumPrefixLength="3" />
</div>
<asp:SqlDataSource runat="server" ID="sqlAuthors" ConnectionString="<%$ ConnectionStrings:Libro %>" ProviderName="<%$ ConnectionStrings:Libro.ProviderName %>"
SelectCommand="SELECT * FROM Authors"
InsertCommand="authors_GetOrCreate" InsertCommandType="StoredProcedure">
<InsertParameters>
<asp:ControlParameter ControlID="newAuthor" Name="authorame" />
</InsertParameters>
</asp:SqlDataSource>
<asp:GridView runat="server" ID="gvAuthors" DataSourceID="sqlAuthors" DataKeyNames="AuthorID" AutoGenerateColumns="false">
<Columns>
<asp:HyperLinkField HeaderText="Author Name" DataNavigateUrlFormatString="~/authors.aspx?id={0}" DataNavigateUrlFields="AuthorID" DataTextField="AuthorName" />
</Columns>
</asp:GridView>
</asp:Panel>
</div>
<div>
</div>
</asp:Content>
假设从字符串转换为int时出错,请尝试:
const int DefaultIndexValue = 1;
int index;
if (!Int32.TryParse(e.CommandArgument.ToString(), out index))
{
index = DefaultIndexValue;
}
您需要分配给按钮
否则,int index=Convert.ToInt32e.CommandArgument.ToString;将引发异常
比如说-
<asp:Button ID="btnFindAuthor" runat="server" Text="Author Quick Find"
CommandName="Select"
OnCommand="btnFindAuthor_Click"
CommandArgument='<%# Bind("ID") %>' />
错误是…?总是给出你得到的任何错误的详细信息。我的猜测-这确实是一个猜测,因为你没有包括实际的错误-是你得到了一个FormatException。你有没有检查过你的代码并检查了什么是e.CommandArgument.ToString?我肯定会使用调试器…这是我第一次看到@Jonsket answ-普通人-页面中的ered尝试添加错误。点击enter按钮,在我添加错误之前提交了我的问题。这里再次出现错误:{输入字符串的格式不正确。}错误消息是怎么说的?能否添加行System.Diagnostics.Debug.Writee.CommandArgument.ToString;并报告它显示的值?System.FormatException未被用户代码消息处理=输入字符串的格式不正确。Source=mscorlib StackTrace:at System.Number.Strington NumberStyles str,NumberStyles options、NumberBuffer&number、NumberFormatInfo信息、System.number.ParseInt32String s处的布尔parseDecimal、NumberStyles样式、System.Convert.ToInt32String信息、ASP.authors处的NumberFormatInfo信息、aspx.btnFindAuthor\U ClickObject发送者、CommandEventArgs e in authors\default.aspx:System.Web.UI.WebControl处的第18行。Button.OnCommand和CommandCommandEventArgs位于System.Web.UI.WebControl.Button.RaisePostBackEventString事件参数位于System.Web.UI.WebControl.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEventString事件参数位于System.Web.UI.Page.RaisePostBackEventHandler源控件,String事件参数位于System.Web.UI.Page.RaisePostBackEventNameValueCollection postData位于System.Web.UI.Page.ProcessRequestMain Boolean IncludeStages在区域同步点之前,Boolean IncludeStagesSafterAsyncPoint InnerException:我将BindAuthorID分配给了CommandArgument,运行了代码,但仍然得到了相同的错误。为了安全起见,我还完全按照Win建议并运行了代码。仍然出现相同的错误。真的很困惑。根据我阅读的内容,如果我将变量绑定到commandargument,则应传递从AutoCompleteXtender中选择的任何内容。我不明白为什么您首先需要commandargument。不幸的是,我只能向您显示错误是否为;其他然后,我不知道网页应该运行什么。我的建议是设置断点,并逐行调试。Win-我设置断点并逐行调试。错误仍然发生在同一行上。我从findauthors文本框中选择的内容没有通过。我在这里的一个提示中找到了commandargument。你知道吗有没有更有效的方法来传递我的变量?
<asp:Button ID="btnFindAuthor" runat="server" Text="Author Quick Find"
CommandName="Select"
OnCommand="btnFindAuthor_Click"
CommandArgument='<%# Bind("ID") %>' />