我正在使用Windows Forms C#应用程序,我需要从数据库中自动生成发票号。为此,我需要从数据库中获取最大值,并希望在db中添加一个最大值,任何想法
答案 0 :(得分:2)
您可以使用IDENTITY
列设计数据库表。数据库将为插入的行分配下一个值。您可以使用以下方法之一访问该值:SCOPE_IDENTITY
,@@IDENTITY
或IDENT_CURRENT
。更多信息可以在这里找到:MSDN-Identity。
要了解SCOPE_IDENTITY
和@@IDENTITY
之间的区别,请参阅here。
答案 1 :(得分:-1)
SELECT MAX(column) FROM table
将从'column'返回最大值。不过,你真的应该考虑使用发票的自动增量。如果您有多个用户同时插入新记录,他们可能会获得相同的发票号。
答案 2 :(得分:-1)
使用Max(column_name)
是最好的选择,替代方法是通过降序排序所需的列,并按前1排第一行。
你需要验证是否没有记录/它是第一个记录。
语法:
Select top 1 Column_name from TableName Order by Column_Name desc
用法示例:
Select top 1 INV_NUMBER from TRANSACTION Order by INV_NUMBER desc
答案 3 :(得分:-1)
select max(column) from table
使用此查询并从表中获取并使用DataReader
if(dr.Read())
String str=dr[0];
string invoicenum=str.ToString()+"1";
System.out.println(invoicenum);
答案 4 :(得分:-1)
请尝试以下方法:
connection.Open();
OleDbCommand maxcmd = new OleDbCommand("select max(invoice_no)+1 from tbl_invoices",connection); // + one to Generate +1
txtnewinvoiceno.Text = maxcmd.ExecuteScalar().ToString();