c# - C#如何在每月的第一个日期重置自动增量ID
问题描述
我很难弄清楚我该怎么做。我想做的是..
例如:
日期:2018 年 10 月 1 日至 2018 年 10 月 31 日,有 2 条记录,如您在提供的图像上所见。您可以看到 id 从 001 开始,依此类推。下个月是 11 月.. id 应该重新启动/回到 001 而不是 003。
PS:OrderID 是我数据库中的 VARCHAR 数据类型
我希望有人能帮助我
public partial class SIMSSupplier : UserControl
{
ADDPOrders order;
public SIMSSupplier()
{
InitializeComponent();
}
public string ORDERID = "000";
private void ADDOrder_Click(object sender, EventArgs e)
{
order = new ADDPOrders(this);
POrderID._OrderID(order.lbl_orderID);
order.ShowDialog();
}
private void DateOrder_ValueChanged(object sender, EventArgs e)
{
DateBetween._DateOrder(DateOrder, DateOrder, PurchaseOrder);
}
private void DateOrder2_ValueChanged(object sender, EventArgs e)
{
DateBetween._DateOrder(DateOrder, DateOrder2, PurchaseOrder);
}
}
public static class DateBetween
{
public static void _DateOrder(DateTimePicker DateOrder, DateTimePicker DateOrder2, DataGridView PurchaseOrder)
{
using (var con = SQLConnection.GetConnection())
{
using (var select = new SqlCommand("Select * from Purchase_Order where Date between @date1 and @date2", con))
{
select.Parameters.Add("@date1", SqlDbType.Date).Value = DateOrder.Value;
select.Parameters.Add("@date2", SqlDbType.Date).Value = DateOrder2.Value;
using (var sd = new SqlDataAdapter(select))
{
var dt = new DataTable();
sd.Fill(dt);
PurchaseOrder.DataSource = dt;
}
}
}
}
}
解决方案
If you have the possibility to change the field type to int is much easier to do this from SQL directly. You can auto increment and change the change the seed value each month with a script like the one below (note it also adds the month number in the beginning, if that's useful for you):
IF (DATEPART(DAY, GETDATE()) = 1)
BEGIN
DECLARE @reseedValue INT
SET @reseedValue = CAST(CONCAT(CAST(DATEPART(MONTH, GETDATE()) AS NVARCHAR(4)), '000') AS INT)
DBCC CHECKIDENT ('[table_name]', RESEED, @reseedValue);
END
推荐阅读
- flutter - 有条件的 Flutter 全屏
- javascript - 重用内置数组方法 - JS - 困惑
- python - 无法使用 OpenCV 使用 cv2.CAP_FFMPEG 在 GPU 上解码视频
- c - 尽管没有显示输出,但编码正在运行。也许这将是scanf问题?我不确定
- javascript - RxJs - 不能从合并的 Observable 中创建两个新的 Observable
- node.js - 使用 NPM 构建的 Gradle Zip 任务
- c - 我在崇高文本中遇到了一些问题
- scala - 使用 group by 中的标志选择一行
- python - 我的滚动条不适用于鼠标的滚动条
- c# - VSTO 办公室插件中的 Tesseract