首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 依需求生成指定位數編號:資料庫最大值遞增與字串格式化實作

     編輯:關於C語言

需求情境

資料庫應用常需自動生成編號(如 BH1000001、ORD20240001)。核心邏輯:查詢現有最大編號 → 解析數字部分 → 遞增 → 格式化回補字首。

關鍵代碼實作

using (var conn = new SqlConnection("Data Source=(local);Database=db_04;Uid=sa;Pwd=;"))
using (var da = new SqlDataAdapter("select ID from tb_31", conn))
{
    var ds = new DataSet();
    da.Fill(ds);

    if (ds.Tables[0].Rows.Count == 0)
    {
        MessageBox.Show("編號為:BH1000001", "資訊");
    }
    else
    {
        // 取得最後一筆編號,假設格式固定 "BH" + 7 位數字
        string lastId = ds.Tables[0].Rows[ds.Tables[0].Rows.Count - 1][0].ToString();
        int num = Convert.ToInt32(lastId.Substring(2, 7)); // 從索引 2 取 7 碼
        MessageBox.Show($"編號為:BH{num + 1:D7}", "資訊");
    }
}

關鍵點解析

  • Substring(2, 7):跳過字首 "BH",擷取 7 位數字字串。
  • Convert.ToInt32:轉為整數以便遞增。
  • {num + 1:D7}:格式化為 7 位數字,不足前補 0。
  • 建議在 SQL 加入 ORDER BY ID DESC 並 TOP 1 直接取最大值,避免全表掃描。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved