如何自动生成id

时间:2010-04-09 10:28:07

标签: c#

我只需要自动生成id,如abc101,abc102,abc103,.... abc10n 它应该存储在DB表中。并且它应该在运行时显示在任何文本框中。

请给出正确的解决方案......

特别感谢提前:)

问候。

Pradeep Kodley

6 个答案:

答案 0 :(得分:2)

如果每个ID都有相同的前缀,那么前缀是浪费空间。只需使用自动增量整数,并在报告和内容中添加前缀。

答案 1 :(得分:2)

您的数据库可能有一个自动递增列用于其数据库表。你能告诉你更多关于你的问题以及你想做什么吗?

答案 2 :(得分:2)

你可以通过在数据库中创建一个在插入任何记录之前运行的触发器来实现这一点。

在你的触发器中,'abc'+(MAX(idColumn)+ 1)会获取下一个值

你也可以在c#中创建一个方法来获取最后一个id,增加它并插入它

答案 3 :(得分:1)

您可以使用GUID:

System.Guid  guid = System.Guid.NewGuid ();
String id = guid.ToString();

答案 4 :(得分:1)

您的数据库可以为您生成顺序ID。

  1. 在数据库中创建一个ID列(我猜你使用的是MS SQL,因为你只说了C#)。

  2. 在ID列

  3. 上将Identity column设置为true
  4. 在ID列

  5. 上将Autoincrement设置为true

    将根据数据库中的现有项自动创建ID列值,您将获得学生ID的序列1,2,3,..此列也可以成为Students表的主键。

    了解不同RDMBS here的自动增量列。

答案 5 :(得分:0)

试试这个:

con.Open();
            string sqlQuery = "SELECT TOP 1 kode_user from USERADM order by kode_user desc";
            SqlCommand cmd = new SqlCommand(sqlQuery, con);
            SqlDataReader dr = cmd.ExecuteReader();

            while (dr.Read())
            {
                string input = dr["kode_user"].ToString();
                string angka = input.Substring(input.Length - Math.Min(3, input.Length));
                int number = Convert.ToInt32(angka);
                number += 1;
                string str = number.ToString("D3");

                txtKodeUser.Text = "USR" + str;
            }
            con.Close();