在 ASP.NET 中从数据库中自动生成 ID



我有一个表员工的主键。我把它命名为"IDS"。IDS 数据类似于:K-00001、K-00002 等。我想问的是,如何在 ASP.NET 中使这个 IDS 自动生成,而不是在 SQL 中使用触发器或函数?

我已经完成了这样的代码:

            DBRabbit _db = new DBRabbit();
            Employee k = new Employee();
            var row = (from r in _db.Employees
                       orderby r.IDS descending
                       select r).FirstOrDefault();
            var n = row.IDS.PadLeft(5, '0');    
            IDSText.Text = n.ToString();

我在思考如何将"n"添加到 + 1.. 时陷入困境,因为当我这样写时:

var n = row.IDS.PadLeft(5, '0')+1; 

(最后一条记录是K-00010)
结果是 K-000101如何在不更改数据库或使用SQL服务器脚本/查询的情况下使其成为K-00011?

你最好像詹姆斯说的那样让你的 IDS 列自动递增。另外,如果您需要为K-00010提供另一列,K-00011 ,...我建议您使用以下公式的计算列

'K-' + cast( right([IDS]+(100000),(5)) as varchar(5))

编辑:公式已更正。

使列自动递增。根据经验,您永远不应该手动递增主键 - 那只是乞求问题。正确的事件顺序会损害这种逻辑。

只需在某处有一个自动 inc 整数(首选数据库),然后使用

String.Concat("K-",KeyValue.ToString().PadLeft(5,'0');

你的方式是很多乱七八糟的,几乎可以保证墨菲有机会玩你的头。只是不要做你正在做的事情。

尝试:

var n = (Convert.ToInt32(row.IDS) + 1).ToString().PadLeft(5, '0');
<</div> div class="one_answers">

您是否使用JavaScript进行上述操作? 如果是这样,请尝试使用

var n = (number(row.ids.substring(2))+1).toString().左垫(5,'0')

子斯特伦函数是去除"k-"

相关内容

  • 没有找到相关文章

最新更新