Автоматическое создание кода

#c# #asp.net

#c# #asp.net

Вопрос:

 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. Когда я получу максимальный код, мне нужно увеличить его на единицу. Например, если найден код Z0001A, то при следующей вставке он должен быть Z0002A. ‘A’ исправлено для таблицы агентов, а также, когда TCODE не найден, мне нужно создать новый код с первым символом textbox text, а затем 0001, а затем исправить символ ‘A’. Как решить? Заранее спасибо.

Комментарии:

1. Что вы пытались сгенерировать для кода? Все, что я вижу, это функцию для извлечения кода из базы данных.

2. теперь я получаю код с увеличением при нажатии кнопки, но когда не найден tcode в базе данных, то как создать новый код

3. Как насчет codevalue "0001A" ?

4. но как применить условие

Ответ №1:

Попробуйте это:

 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);
}