Member 13809257 Ответов: 3

Мне нужен автоматически сгенерированный идентификатор в C#


это мой код для автоматического сгенерированного идентификатора я хочу, чтобы мой автоматический идентификатор получал дату-время и год для моего идентификатора. он будет генерировать как 050-2018-0001 в текстовом поле, как этот формат im new В C#. извините за плохой английский
private void GenerateID()
        {
           
            con.Open();
            cmd = new MySqlCommand("Select Max(StudID)+1 from student_registration", con);
            dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {

                while (dr.Read())
                {
                    txtStudID.Text = dr[0].ToString();
                    if (txtStudID.Text == "")
                    {
                        txtStudID.Text = "1";

                    }
                }
            }
            else
            {
                txtStudID.Text = "1";
                return;
            }
            con.Close();
        }


Что я уже пробовал:

мне нужен автоматически сгенерированный идентификатор в C#

OriginalGriff

И что же?
А что вы пробовали?
Где ты застрял?
Какая помощь вам нужна?
Какое отношение" Дата-Время " имеет к этому идентификатору?

Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы.
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

3 Ответов

Рейтинг:
20

RickZeeland

Ваш вопрос не очень ясен, но, возможно, вы имеете в виду что-то вроде этого:

txtStudID.Text = "050-" + DateTime.Now.Year + "-" + dr[0].ToString().PadLeft(4, '0');


Member 13809257

когда я запустил код и сохранил его. результат-050-2018-0050, а не 050-2018-0001

Рейтинг:
2

Laxman Singh Digari

Лучший способ иметь автоматически сгенерированный идентификатор в коде C# приведен ниже.

служащий государственного класса
{
идентификатор публичных идентификатор { получить; личное набор; } = идентификатор GUID.Метод newguid();
public string EmployeeName { get; set; }
общественного строка адреса { получить; набор; }
}

Поэтому всякий раз, когда вы создаете объект класса Employee, он присваивает свойству ID уникальный идентификатор GUID, так что больше ничего делать не нужно.


Рейтинг:
0

jekin77

Вам нужно разобрать вас StudId потому что это строка

попробуй вот так

private void GenerateID()
{
	
	con.Open();
	cmd = new MySqlCommand("Select Max(StudID) from student_registration", con);
	dr = cmd.ExecuteReader();            
	string newId = string.Format("050-{0}-0001", DateTime.Now.Year);
	if (dr.HasRows)
	{
		string prefix = string.Format("050-{0}", DateTime.Now.Year);
		while (dr.Read())
		{
			
			string maxId= dr[0].ToString();
			if (!string.IsNullOrWhiteSpace(maxId) && maxId.StartsWith(prefix))                  
			{                        
				int count = Convert.ToInt32(maxId.Split('-')[2]);
				newId = string.Format("050-{0}-{1:0000}", DateTime.Now.Year, count+1);
			}                    
		}
	}
	txtStudID.Text = newId;
	con.Close();
}


nurjimar adam

сэр джекин77 я хотел автогенерированный идентификатор типа 000000000001 000000000002 000000000003 я использую автоматическое приращение.

jekin77

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

nurjimar adam

да но мне нужно как 00000000001 0000000002 сгенерированный идентификатор можете ли вы помочь мне с этим

jekin77

вы написали в первом посте: "я хочу, чтобы мой автоматический идентификатор получил дату, время и год для моего идентификатора. он будет генерировать как 050-2018-0001" , так что examle от этого.

Теперь у вас будет что-то еще ...

Если вы откажетесь от приведенного ниже кода , Вы можете сделать это сами ...ТОЛЬКО ПОПРОБУЙ !

nurjimar adam

я новичок в программировании

nurjimar adam

можете ли вы помочь мне улучшить свои навыки в c# ??

jekin77

обучение на практике - это лучший способ улучшить свои навыки