Hi Team
I am experience this problem, but i am using the correct parameters. I want to get latest batchNumber sequentially so that when the windows application is opened. There should be that number and should increment every time user open the screen.
USE [Adroit_Batch_Suite] GO /****** Object: StoredProcedure [dbo].[spGetPremixSheet] Script Date: 2024/07/23 13:22:58 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[spGetPremixSheet] @procOption NVARCHAR(50), @Batch INT = NULL, @DateCaptured DATE = NULL, @Code NVARCHAR(50) = NULL, @Phase NVARCHAR(100) = NULL, @Quantity DECIMAL(18, 2) = NULL, @Comments NVARCHAR(MAX) = NULL, @PrintedBarCodes INT, @UnusedBarcodes INT, @UsedBarCodes INT, @PrintedVar INT, @UserVar INT AS BEGIN SET NOCOUNT ON; IF @procOption = 'All' BEGIN SELECT Batch, DateCaptured, Code, Phase, Quantity, Comments, PrintedBarCodes, UnusedBarcodes, UsedBarCodes,PrintedVar, UserVar FROM [dbo].[Adr_Batch_PremixControl] END ELSE IF @procOption = 'PK' BEGIN SELECT Batch, DateCaptured, Code, Phase, Quantity, Comments, PrintedBarCodes, UnusedBarcodes, UsedBarCodes,PrintedVar, UserVar FROM [dbo].[Adr_Batch_PremixControl] WHERE Batch = @Batch; END ELSE IF @procOption = 'Date' BEGIN SELECT Batch, DateCaptured, Code, Phase, Quantity, Comments, PrintedBarCodes, UnusedBarcodes, UsedBarCodes,PrintedVar, UserVar FROM [dbo].[Adr_Batch_PremixControl] WHERE DateCaptured = @DateCaptured; END ELSE IF @procOption = 'LatestBatchNumber' BEGIN SELECT TOP 1 Batch FROM [dbo].[Adr_Batch_PremixControl] ORDER BY Batch DESC; END END GO
//xaml.cs public frmPremixPostData() { InitializeComponent(); presenter = new ManagePremixBatchPresenter(this); this.DataContext = this; this.Loaded += FrmPremixPostData_Loaded; } //incrementing a batch number sequentially. private void FrmPremixPostData_Loaded(object sender, RoutedEventArgs e) { int batchNumber = presenter.GetNextBatchNumber(batchNo); presenter.GetDateForBatch(batchNumber); BatchTextBox.Text = batchNumber.ToString(); } //presenter.cs public int GetNextBatchNumber(int batchNo) { Managers.PremixControlManager.SetAdriotConnection(); try { // Get the latest batch number from the database var latestBatchControl = Managers.PremixControlManager.GetLatestBatchNumber(batchNo); // Increment the batch number to get the next one var nextBatchNumber = latestBatchControl.Batch + 1; return nextBatchNumber; } catch (Exception ex) { // Log the exception or handle it appropriately Console.WriteLine($"Error in GetNextBatchNumber: {ex.Message}"); throw; // Rethrow the exception to propagate it further if needed } finally { Managers.PremixControlManager.SetDefaultConnection(); } } //manager.cs public static PremixControl GetLatestBatchNumber(int batchNo) { var result = DataAccessProvider.GetEntity<PremixControl>( PremixControl.PROC_NAME_GET, new object[] { "LatestBatchNumber", DBNull.Value, DBNull.Value, DBNull.Value, DBNull.Value, DBNull.Value, DBNull.Value, 0, 0, 0, 0, 0 }); if (result == null) { result = new PremixControl(); } return result; }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Feedmill_Weighbridge.Entities { class PremixControl { public const string PROC_NAME_GET = "[dbo].[spGetPremixSheet]"; public const string PROC_PNAME_GET = "[dob].[spGetPremixBatchTest]"; public PremixControl() { } public int Batch { get; set; } public DateTime? DateCaptured{ get; set; } public string Code { get; set; } public string Phase { get; set; } public decimal ? Quantity { get; set; } public string Comments { get; set; } public int PrintedBarCodes { get; set; } public int UnusedBarcodes { get; set; } public int UsedBarCodes { get; set; } public int PrintedVar { get; set; } public int UserVar { get; set; } } }