如何在asp.net中使用日期和整数作为发票号

时间:2015-07-07 06:47:16

标签: c# asp.net sql-server

我正在开发一个项目,其中发票编号应打印为

(ddMMYYYY)+(Int)

e.g。

07072015001
07072015002
....
07072015110

等等。

我正在使用asp.net(C#)和SQL Server作为后端。

请帮忙。

4 个答案:

答案 0 :(得分:0)

您可以执行以下操作

int invoice = 1;
string date = DateTime.Now.ToString("MMddyyyy") + invoice.ToString();

<强>输出
 070720151

答案 1 :(得分:0)

这是你要找的吗?而不是ddMMYYYY使用ddMMyyyy

    DateTime myDate = DateTime.Now;
    string strTime = myDate.ToString("ddMMyyyy");
    int intValue=111;

    var invoiceNumber = strTime + intValue.ToString();

答案 2 :(得分:0)

也许这个,如果您更喜欢在C#格式化:

var invoiceNumber = 2;
var maxWidth = 3;            
var theDate = DateTime.Now;
var formattedValue = theDate.ToString("ddMMyyyy") 
         + invoiceNumber.ToString().PadLeft(maxWidth, '0');

答案 3 :(得分:0)

假设您有一个Invoice表,其中至少包含InvoiceIDint identity)和InvoiceDate(数据类型为DATE),那么您可以很容易地将一个计算的,持久化的列添加到您的表中:

ALTER TABLE dbo.Invoices
ADD InvoiceNo AS REPLACE(CONVERT(VARCHAR(10), InvoiceDate, 104), '.', '') + 
    RIGHT(REPLICATE('0', 6) + CAST(InvoiceID AS VARCHAR(6)), 6) PERSISTED

因此,如果表中有几行,那么InvoiceNo将由SQL Server自动填充,如下所示:

enter image description here

此列可以像任何其他列一样使用和读取 - 它只是您无法设置(SQL Server会在插入新行或更新现有行时自动为您执行此操作)