首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自动管理数据库中的序列号?

如何自动管理数据库中的序列号?
EN

Stack Overflow用户
提问于 2014-07-13 12:57:06
回答 1查看 2.3K关注 0票数 0

我在vb.net中创建了一个应用程序,它接受来自用户的值并将它们插入数据库(在server 2008中创建)。它接受来自应用程序本身的名称、地址、电话号码等。但问题是,用户还需要在应用程序中输入序列号。有办法自动管理序列号吗?因为没人记得上一张唱片的序列号。因此,在为新记录分配序列号之前,每次都需要检查数据库中最后一个记录的序列号。

我还希望,如果从数据库中间删除任何记录,序列号应自动调整。所以,我想要的是,序列号应该自动分配,就像第一次记录的1,下一次记录的2,3,4,5,6.诸若此类。但是,如果与序列号5相对应的记录被删除,那么s.no。6应成为s.no。5.

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-13 13:47:37

你每次在数据库上注册记录时都要调用一个函数。在分配记录之前,不要检查数据库中的最后一个号码,并添加一个计数,并保存与序列号相同的号码。在数据库中创建一个以serial_no作为主键的列,

代码语言:javascript
复制
CREATE TABLE table_name
(
Serial_no int NOT NULL,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Serial_no)
);

很抱歉,我不太熟悉VB,这里我用C#提供了解决方案,我希望你能从这段代码中得到一些想法。

代码语言:javascript
复制
public void create_serial_no()
{
    using (var connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["my_database_name"].ConnectionString))
    using (var command = connection.CreateCommand())
    {
        command.CommandText = "SELECT [Serial_no] FROM table_name";
        connection.Open();
        string strs = command.CommandText;
        string i = null;
        int j = 0;
        using (var reader = command.ExecuteReader())
        {
            while (reader.Read())
                i = reader["Serial_no"].ToString(); ;
        }
        j = Convert.ToInt32(i);
        int k = 0;

        k = j + 1;
        // this is a serial no generated automaticall by the database
        textBox1.Text = k.ToString();
    }
}

享受吧!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24722935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档