自动生成代码

本文关键字:代码 自动生成 | 更新日期: 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);
}