Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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#_.net_Winforms_Auto Increment - Fatal编程技术网

如何在C#中自动递增数字?

如何在C#中自动递增数字?,c#,.net,winforms,auto-increment,C#,.net,Winforms,Auto Increment,我正在使用C#2008 Windows窗体应用程序 在我的项目中有一个文本框控件,我想为样本s00自动生成一个数字,然后当我再次返回表单时,它应该像s01、s02、s03……那样递增 请帮我很容易。保留一个变量以保留当前数字 int incNumber = 0; 然后单击按钮,生成如下所示的数字字符串: string nyNumber = "s" + incNumber.ToString("00"); incNumber++; int counter= 0; 按照Øyvind Knoblo

我正在使用C#2008 Windows窗体应用程序

在我的项目中有一个
文本框
控件,我想为样本s00自动生成一个数字,然后当我再次返回表单时,它应该像s01、s02、s03……那样递增


请帮我很容易。保留一个变量以保留当前数字

int incNumber = 0;
然后单击按钮,生成如下所示的数字字符串:

string nyNumber = "s" + incNumber.ToString("00");
incNumber++;
int counter= 0;
按照Øyvind Knobloch Brå的建议执行,但是如果您希望在窗体被禁用被激活时自动执行(您回到窗体并给予它焦点),那么您可以这样做

仅当您确定框中的文本始终采用上述格式时,此选项才有效


正如伊文德·克诺布洛赫(Iyvind Knobloch Brå)当时所说:使用变量跟踪整数。只有您应该这样格式化它(Microsoft首选):

或者,如果您想使用少一行代码:

int incNumber = 0;

string formattedIncNumber = String.Format("s{0:D2}", incNumber++);

有关整数格式的完整参考,请参阅。

以上oyvind knobloch-brathen的一个稍好的变体:

int incNumber=0;
s + String.Format("{0:00}", incNumber);  
incNumber++;

//s00,s01,s02。如果您想要范围0001-9999,只需将“00”更改为“0000”,以此类推。

尝试自动生成数字和自动增加数字:

// Stock is table name
// metal id is unique number that is auto generated as well as auto incremented


private void textBox9_TextChanged(object sender, EventArgs e)
{
    string s = "select max(metalid)+1 from stock";
    SqlCommand csm = new SqlCommand(s, con);

    con.Open();
    csm.ExecuteNonQuery();

    SqlDataReader dd = csm.ExecuteReader();

    while (dd.Read())
    {
        int n = dd.GetInt32(0);
        textBox1.Text = n.ToString();
    }

     con.Close();
}

另一种单线方法是:

string sampleNum = "s" + (counter++).ToString("00");
其中,计数器定义如下:

string nyNumber = "s" + incNumber.ToString("00");
incNumber++;
int counter= 0;

如果字符串的文本成分未知(字符串末尾有或没有数字),此函数的变体可能会有所帮助:

        private string increment_number_at_end_of_string(string text_with_number_at_the_end)
        {
            string text_without_number = text_with_number_at_the_end.TrimEnd('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
            string just_the_number = text_with_number_at_the_end.Substring(text_without_number.Length);

            int number = -1;
            if (int.TryParse(just_the_number, out number))
            {
                return text_without_number + (number + 1).ToString();
            }
            return text_with_number_at_the_end;
        }

if(dt.Rows[0][“Column_name'”).ToString()==null){Label1.Text=“DMBP-000001”}else{Label.Text=dt.Rows[0][“Column_name'”).ToString();}}}catch{}

这是在C#中生成自动递增id的解决方案,它不需要增加或做任何事情。它会起作用的。每当创建新对象时,其值将增加1

public class Employee
    {
        static long AutoId = 0;
        public long Id { get; private set; } = ++AutoId;
        public string EmployeeName { get; set; }
        public string Address { get; set; }
    }

我认为你仍然需要增加这个数字OP不是在处理数据库。它和这个问题有什么关系?
public class Employee
    {
        static long AutoId = 0;
        public long Id { get; private set; } = ++AutoId;
        public string EmployeeName { get; set; }
        public string Address { get; set; }
    }