从SQL表调用最大值到文本框

时间:2013-11-19 05:14:36

标签: c# sql winforms

我正在使用Windows Forms C#应用程序,我需要从数据库中自动生成发票号。为此,我需要从数据库中获取最大值,并希望在db中添加一个最大值,任何想法

5 个答案:

答案 0 :(得分:2)

您可以使用IDENTITY列设计数据库表。数据库将为插入的行分配下一个值。您可以使用以下方法之一访问该值:SCOPE_IDENTITY@@IDENTITYIDENT_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();