C# 在c中自动生成代码的id中生成重复id?

C# 在c中自动生成代码的id中生成重复id?,c#,ms-access,C#,Ms Access,Hi创建了一个程序,该程序读取表的最后一行,并根据最后生成的id号生成id号,但该程序仍在生成表中已存在的重复id号。 我的代码是:follow private void get_code() { try { con = new OleDbConnection(c.connectionstring); con.Open();

Hi创建了一个程序,该程序读取表的最后一行,并根据最后生成的id号生成id号,但该程序仍在生成表中已存在的重复id号。 我的代码是:follow

private void get_code()
        {
                try
                {
                    con = new OleDbConnection(c.connectionstring);
                    con.Open();
                    string sql = "select code from bookings";
                    adp = new OleDbDataAdapter(sql, con);
                    DataSet ds = new DataSet();
                    adp.Fill(ds, "BOOKINGS");
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        int ctr, len;
                        string codeval;
                        DataRow dr;
                        DataTable dt;
                        string code;
                        dt = ds.Tables["bookings"];
                        len = dt.Rows.Count -1;
                        dr = dt.Rows[len];
                        code = dr["code"].ToString();
                        codeval = code.Substring(2, 3);
                        ctr = Convert.ToInt32(codeval);
                        if ((ctr >= 1) && (ctr < 9))
                        {
                            ctr = ctr + 1;
                            Code.Text= "B-00" + ctr;
                        }
                        else if ((ctr >= 9) && (ctr < 99))
                        {
                            ctr = ctr + 1;
                            Code.Text = "B-0" + ctr;
                        }
                        else if (ctr >= 99)
                        {
                            ctr = ctr + 1;
                            Code.Text = "B-" + ctr;
                        }

                    }
                else
                {
                    Code.Text= "B-001";
                }
                con.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error Occured : "+ex.Message,"Tailor Master",MessageBoxButtons.OK,MessageBoxIcon.Information);
            }
    }
在以下情况下,场景如下所示: 如果最后一个id是b-005,它将再次生成相同的id

请帮忙解决这个问题。提前谢谢


Harish sharma

查询中没有指定order by子句,因此无法保证数据表的最后一行包含最高id。在应用程序中生成id,而不是在数据库中使用适当的自动递增字段也是一个普遍问题。

不管代码有什么错误,您是否考虑过如果程序的两个副本在非常相似的时间运行会发生什么情况?