如何在C#中自动递增数字?
我正在使用C#2008 Windows窗体应用程序 在我的项目中有一个如何在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
文本框
控件,我想为样本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; }
}