自动生成代码
本文关键字:代码 自动生成 | 更新日期: 2023-09-27 18:14:27
protected void Button1_Click(object sender, EventArgs e)
{
string cs = ConfigurationManager.ConnectionStrings["Dum01"].ConnectionString;
using (var scon = new SqlConnection(cs))
{
string codevalue = TextBox1.Text.Substring(0, 1);
var query = "SELECT MAX(CODE) AS TCODE FROM AgentMast WHERE LEFT(CODE,1)= @SearchText";
using (var cmd = new SqlCommand(query, scon))
{
cmd.Parameters.AddWithValue("@SearchText",codevalue);
cmd.CommandType = CommandType.Text;
cmd.Connection = scon;
scon.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
TextBox2.Text= sdr["TCODE"].ToString();
}
string codewithnumber = TextBox2.Text.Substring(1, 4);
Label2.Text = codewithnumber;
Label1.Text = (int.Parse(Label2.Text) + 1).ToString();
string firstchar=TextBox2.Text.Substring(0,1);
Label3.Text = firstchar + Label1.Text+"A" ;
}
scon.Close();
}
}
}
当在文本框中输入一些文本时,根据第一个字母,它从AgentMast表中选择最大代码。当我得到最大代码时,我需要加1。例如,如果代码找到Z0001A,那么下一个插入应该是Z0002A。"A"对于代理表是固定的,当TCODE没有找到时,我需要用文本框文本的第一个字符创建新代码,然后是0001,然后固定字符"A"。如何解决?
试试这个:
oldCode = sdr["TCODE"].ToString();
if (string.IsNullOrEmpty(oldCode))
{
newCode = codevalue + "0001A";
}
else
{
int newIncrement = Convert.ToInt32(oldCode.Substring(1, 4)) + 1;
newCode = codevalue + newIncrement.ToString().PadLeft(4, '0') + oldCode.Substring(5, 1);
}