如何在文本框中创建发票编号并在单击按钮时自动递增?

chi*_*rag 5 c# sql-server web-applications

我正在使用 Asp.net(C#) 和 SQL Server。在Web应用程序中,我想要在文本框中输入5位发票号码,单击按钮后,网格视图数据将保存在数据库中,然后文本框中的发票号码应增加1......依此类推。我使用了这段代码=>

protected void Page_Load(object sender, EventArgs e)
{
    double ID = 00001;
    txtinvoiceno.Text = Convert.ToString(ID);
Run Code Online (Sandbox Code Playgroud)

protected void btnsavef1_Click(object sender, EventArgs e)
{
    ID++;
    var no = Convert.ToInt32(ID);
    txtinvoiceno.Text = Convert.ToString(no);
}
Run Code Online (Sandbox Code Playgroud)

但它在输出中仅显示单个数字 1,并且仅在 ie2 时递增一次,并且进一步递增不起作用。

有人对此有任何想法吗?

感谢和问候,

Him*_*ere 5

我怀疑这是否会编译,因为btnsavef1_Click变量内ID未定义。您可能想ID成为一个实例变量:

\n\n
class MyClass {\n    private int ID = 0;\n\n    protected void Page_Load(object sender, EventArgs e)\n    {\n        txtinvoiceno.Text = this.ID.ToString("D5");\n    }\n\n    protected void btnsavef1_Click(object sender, EventArgs e)\n    {\n        this.ID++;\n        txtinvoiceno.Text = this.ID.ToString("D5");\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

此外,您将\xc2\xb4t实际存储格式化的数字。只需将数字存储为整数,并使用格式说明符在事件代码中进行格式化ToString即可

\n


小智 2

尝试这个 :

public partial class WebForm1 : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
        {
           if (Page.IsPostBack == false)
           { 
               int ID = 1; 
               txtinvoiceno.Text = ID.ToString("D5");
             }
        }

        protected void btnsavef1_Click(object sender, EventArgs e)
        {
            int ID = Convert.ToInt16(txtinvoiceno.Text );
            ID++;
            txtinvoiceno.Text = ID.ToString("D5");
        }

    }
Run Code Online (Sandbox Code Playgroud)