0

これは、データソースから以前の最大の ID を取得し、この値に 1 を加えた方法です。

   string _fID = (float.Parse("." + DBContext.Employees.OrderByDescending(x =>   
    x.EmpID).FirstOrDefault().EmpID.ToString()) + .00001f).ToString("F5");

そして、私は得る_fID = 0.00002

しかし、私が欲しいのは、10 進数値のない文字列です。
例えば。_fID = 00002.

私がやったことは、のように置き換えることです_fID = _fID.Replace("0.","");
これを作る簡単な方法はありますか?ありがとうございました:)

PS

EmpID のデータ型は ですnvarchar(5)

4

1 に答える 1

7

浮動小数点型の使用をまったくやめることをお勧めします。それは基本的にあなたが持っているものなので、整数を使用してください。(論理的に整数のみを使用している場合、データ型がテキストであるのは残念です。)

string currentHighest = DBContext.Employees
                                 .Select(x => x.EmpID)
                                 .OrderByDescending(x => x)
                                 .FirstOrDefault();
// TODO: Handle currentHighest being null (empty table)
int nextId = (int.Parse(currentHighest) + 1).ToString("00000");
于 2013-09-23T06:26:14.740 に答える