使用InitNewRow自动增量与SQL Server序列

时间:2017-12-06 04:01:28

标签: c# sql-server

在C#中,我有以下代码在XtraGrid中生成下一个工单号

private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
{
    DevExpress.XtraGrid.Views.Grid.GridView view = sender as DevExpress.XtraGrid.Views.Grid.GridView;
    string sqlText = "SELECT MAX([WORK ORDER #]) FROM WORKORDERS ";

    SqlConnection con3 = new SqlConnection("Data Source=SERVERNAME;Initial Catalog=DBNAME;User ID=sa;Password=password");
    SqlCommand command = new SqlCommand(sqlText, con3);

    try
    {
        con3.Open();
        string pcount = Convert.ToString(command.ExecuteScalar());

        if (pcount.Length == 0)
        {
            view.SetRowCellValue(e.RowHandle, view.Columns["WORK ORDER #"], "1");
        }
        else
        {
            int pcount1 = Convert.ToInt32(pcount); //pcount;
            int pcountAdd = pcount1 + 1;
            view.SetRowCellValue(e.RowHandle, view.Columns["WORK ORDER #"], pcountAdd.ToString());
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
    finally
    {
        con3.Close();
    }
}

在SQL Server中,当SalesOrder到达SQL(SalesOrder或工作订单流程)以生成WORKORDER时,我有一个链接服务器#我使用了SEQUENCE,如下所示

CREATE SEQUENCE [dbo].[WorkOrderSequence] 
 AS [int]
 START WITH 47497
 INCREMENT BY 1
 MINVALUE -2147483648
 MAXVALUE 2147483647
 CACHE 
GO

在我的WORKORDER表中,我有(4433 row(s)),最后一个工作订单#是47493

从链接服务器销售订单到工作订单时的问题我得到正确的编号问题是当我在C#网格中添加新行时,我得到了重复记录。

0 个答案:

没有答案