Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要有关格式异常的帮助::输入字符串的格式不正确_C#_Asp.net - Fatal编程技术网

C# 需要有关格式异常的帮助::输入字符串的格式不正确

C# 需要有关格式异常的帮助::输入字符串的格式不正确,c#,asp.net,C#,Asp.net,我的主类中的属性 public Int64 DetailID { get { return bintDetailID; } set { bintDetailID = value; } } 我的班级 mainClass obj=new mainClass(); obj.DetailID = int.Parse(e.CommandArgument.ToString()); aspx页 <asp:Button

我的主类中的属性

  public Int64 DetailID
        {
            get { return bintDetailID; }
            set { bintDetailID = value; }
        }
我的班级

mainClass obj=new mainClass();
obj.DetailID = int.Parse(e.CommandArgument.ToString());
aspx页

<asp:Button ID="btnEdit" Text="Edit" CommandArgument='<%#Eval("DetailID") %>'
CausesValidation="false" CommandName="Edit" Visible="false" runat="server" OnCommand="btnEdit_Click"/>

怎么了?plz help..thnx

假设您的按钮对象不在数据绑定控件(如网格/中继器)内, 如果您试图使用DetailID属性绑定按钮,请检查以下内容:-

  • 假设您的按钮位于
    testPage.aspx
    中,则
    testPage.aspx
    的codebehind类,即
    class testPage
    应具有名为DetailID的
    Int64
    类型的属性。 例如:
    Int64-DetailID-get;设置

  • 假设mainClass是您的某个自定义类,在Page_Load的某个地方,您必须执行
    this.DetailID=mainClassObject.DetailID其中
    =页面的实例

  • 此外,在
    page\u load
    方法中,还必须执行
    page.DataBind()
    。这是因为像按钮这样的非数据绑定控件没有自己的DataBind()方法

  • 注1:如果testPage.DetailID=Int32/int,则需要在setter方法中或之前进行转换,因为y0ur main类是Int64

    注2:从您的评论来看,您似乎在说Int64不存在。真奇怪!
    尝试使用完全限定的名称,即System.Int64,看看是否有效

    假设按钮对象不在数据绑定控件(如网格/中继器)内, 如果您试图使用DetailID属性绑定按钮,请检查以下内容:-

  • 假设您的按钮位于
    testPage.aspx
    中,则
    testPage.aspx
    的codebehind类,即
    class testPage
    应具有名为DetailID的
    Int64
    类型的属性。 例如:
    Int64-DetailID-get;设置

  • 假设mainClass是您的某个自定义类,在Page_Load的某个地方,您必须执行
    this.DetailID=mainClassObject.DetailID其中
    =页面的实例

  • 此外,在
    page\u load
    方法中,还必须执行
    page.DataBind()
    。这是因为像按钮这样的非数据绑定控件没有自己的DataBind()方法

  • 注1:如果testPage.DetailID=Int32/int,则需要在setter方法中或之前进行转换,因为y0ur main类是Int64

    注2:从您的评论来看,您似乎在说Int64不存在。真奇怪!
    尝试使用完全限定的名称,即System.Int64,看看是否有效

    Int.parse用于转换为32位整数值

     public Int64 DetailID
            {
                get { return bintDetailID; }
                set { bintDetailID = value; }
            }
    
    它是64位的

    try Int64.parse(e.CommandArgument.ToString());
    
    如果您得到的是空值检查

     (!string.IsNullOrEmpty(e.CommandArgument.ToString())
    Int64.parse(e.CommandArgument.ToString());
    
    希望它能起作用


    谢谢

    Int.parse用于转换为32位整数值。根据您的问题

     public Int64 DetailID
            {
                get { return bintDetailID; }
                set { bintDetailID = value; }
            }
    
    它是64位的

    try Int64.parse(e.CommandArgument.ToString());
    
    如果您得到的是空值检查

     (!string.IsNullOrEmpty(e.CommandArgument.ToString())
    Int64.parse(e.CommandArgument.ToString());
    
    希望它能起作用


    谢谢

    为了确保这一点,请尝试从代码隐藏中设置
    CommandArgument
    的值

    btnEdit.CommandArgument = DetailID.ToString();
    

    不过,我有一个疑问,就是你是否应该在.aspx文件中写入

    CommandArgument='<%=Eval("DetailID") %>'
    
    CommandArgument=''
    
    而不是

    CommandArgument='<%#Eval("DetailID") %>'
    
    CommandArgument=''
    

    (注意
    =
    vs
    #

    为了确保,请尝试从后面的代码中设置
    命令参数的值

    btnEdit.CommandArgument = DetailID.ToString();
    

    不过,我有一个疑问,就是你是否应该在.aspx文件中写入

    CommandArgument='<%=Eval("DetailID") %>'
    
    CommandArgument=''
    
    而不是

    CommandArgument='<%#Eval("DetailID") %>'
    
    CommandArgument=''
    


    (请注意
    =
    vs
    #

    当您获取e.commandargument时,它是什么。当我调试时..当我给出像obj.DetailID=567这样的硬编码值时,它显示为空字符串“”;它运行正常。你不能将空字符串转换为int。为什么它返回空字符串?我不明白。下面是正确的吗??CommandArgument=''当您得到它时,e.CommandArgument是什么。当我给出像obj.DetailID=567这样的硬编码值时,它会显示为一个空字符串';它运行正常。你不能将空字符串转换为int。为什么它返回空字符串?我不明白。下面是正确的吗??CommandArgument=''我已经试过了..它说Int64在当前上下文中不存在(!!???@Happy Soul-如果您的按钮不在数据绑定控件(如网格)内,那么您可以检查我的更新答案,看看它是否有效!!好的,我已经像你说的那样实现了。现在,当我在代码中包含“Page.DataBind();”行时,我的aspx页面的母版页正在抛出“Object reference null exception”。。当我在PageLoad方法中注释掉这一行时,不会引发此异常,但e.commandArguments再次变成空字符串,如“如何使用thsi非数据绑定控件?”?请帮忙。。thnx@HappySoul-Page.DataBind()的作用是将页面上的所有数据源绑定到它们各自的控件上。从中获取对象引用错误的行的代码是什么?在执行page.DataBind()之前,是否可以确定页面上的所有其他数据源是否都填充了值。如果未填充任何数据源,则可能会出现对象引用错误。为了测试这部分是否正常工作,我建议您首先注释掉页面上的所有其他数据源/数据绑定控件…我已经尝试过了..它说Int64在当前上下文中不存在(!!??)@Happy Soul-如果您的按钮不在数据绑定控件(如网格)内,那么您可以检查我的更新答案,看看它是否有效!!好的,我已经像你说的那样实现了。现在,当我在代码中包含“Page.DataBind();”行时,我的aspx页面的母版页正在抛出“Object reference null exception”。。当我在PageLoad方法中注释掉这一行时,不会引发此异常,但e.commandArguments再次变成空字符串,如“如何使用thsi非数据绑定控件?”?请帮忙。。thnx@Happy灵魂-Page.DataBind()的作用是