【问题标题】:Easy ways to increment with number and letters after checking DB检查数据库后用数字和字母递增的简单方法
【发布时间】:2018-04-03 06:05:08
【问题描述】:

使用 C# 和 ASP.NET Lnna 基于用户输入的值。 我可以得到这些值。 Lnnai 是完整的形式。 最后一个值“i”应从 0-9、a-z 和 A-Z 递增。在 DB 中查找值和增量的最简单方法是什么?

var Lnna = L + nn + a;

var ichars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".ToCharArray();

var i = ?

【问题讨论】:

  • 您能在示例数据中添加更多细节吗? L + nn + a 是什么?
  • @ChetanRanpariya L 是一个字符(即:A、B、C、D、E、F) NN 是一个数字(即:00、01、02... 09) A 是一个字符(即:A....Z)
  • nna 是什么?
  • @ChetanRanpariya 我已经用这些细节编辑了评论
  • 对不起,但我仍然不太清楚。您想在数据库中查看 Lnna 的值是否存在,然后增加 i ?=!那是对的吗?如果它不存在,你会怎么做?

标签: c# arrays char


【解决方案1】:

检查 ASCII 表的结果 0-9 48-57 AZ 65-90 AZ 97-122 增加一个数字比增加一个字母要容易得多,所以我将最后一个字母转换为它的 ASCII 值并增加,然后将其转换回一个 char,然后再转换为 toString。

private void Form2_Load(object sender, EventArgs e)
        {
            string input = "Lnnnai";
            bool foundInDatabase = false;
            //set your value after db query
            if (foundInDatabase)
            { }//your code here
            else
            { 
                string s = input.Substring(input.Length - 1, 1);
                s = IncrementCharacter(s);
                Debug.Print(s);
                string newString  = input.Remove(input.Length - 1, 1);
                newString += s;
                Debug.Print(newString);
            }
        }
 private string IncrementCharacter(String character)
        {
            int code = Char.ConvertToUtf32(character,0);
            switch (code)
            {
                case 57:
                    return "A";
                case 90:
                    return "a";
                default:
                    code += 1;
                    return ((char)code).ToString();
            }
        }

使用 Debug.Print 导入 System.Diagnostics

【讨论】:

  • 这是一个 ASP.NET 核心项目。但我想我可以在参考你的代码后让它工作。谢谢@玛丽
【解决方案2】:

这是我使用的方法。它完美地工作。

            int tl = items.ShelfId;
            var ttl = await _context.Shelfs.FirstOrDefaultAsync(b => b.ShelfId == tl);
            var l = ttl.Name;

            int tnn = items.CategoryId;
            var ttnn = await _context.Categories.FirstOrDefaultAsync(b => b.CategoryId == tnn);
            var nn = ttnn.Subject;

            string a = items.AuthorLastName.Substring(0, 1);

            var lnna = l + nn + a;

            var ichars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".ToCharArray();

            var currenti = _context.Items.Count(i => i.LibraryItemNumber.Contains(lnna));

            if (currenti > 0 && currenti < 62)
            {
                var i = ichars[currenti];
                var LNNAI = lnna + i;
                items.LibraryItemNumber = LNNAI;
            }
            else if (currenti == 0)
            {
                var i = ichars[0];
                var LNNAI = lnna + i;
                items.LibraryItemNumber = LNNAI;
            }
            else
            {
                items.LibraryItemNumber = "Exceed";
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-19
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 2016-12-27
    • 2012-02-23
    • 2014-10-08
    相关资源
    最近更新 更多