Я использую DevExpress GridControl в Windows Forms, GridControl Дайте мне возможность вызывать хранимую процедуру, но со значениями по умолчанию мне нужно, чтобы пользователь вводил значения, чтобы он мог выполнять поиск с помощью хранимой процедуры.
Это моя основная форма:
Слева вы видите, что пользователь может вставить значения, для которых требуется хранимая процедура.
Этомоя хранимая процедура
ALTER PROCEDURE [dbo].[SPS_PronosticoStock]
@IdProducto INT,
@IdBodega INT,
@FechaInicio DATE,
@FechaFin DATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Contador INT, -- Variable que aumenta hasta llegar a @Rango para el ciclo While
@Rango INT, -- Diferencia de dìas entre @FechaInicio y @FechaFin
@FechaDisplayed DATE, -- Variable que aumentara desde @FechaInicio hasta @FechaFin
@Stock INT
SET @Rango = DATEDIFF(DAY,@FechaInicio , @FechaFin)
SET @Contador = 0
SET @FechaDisplayed = @FechaInicio
SET @Stock = (SELECT Stock FROM Tbl_ProductoBodega WHERE IdProducto = @IdProducto AND IdBodega = @IdBodega)
--Inicia Ciclo WHILE
WHILE @Contador <= @Rango
BEGIN
SELECT
@FechaDisplayed, Tbl_ProductoBodega.Referencia, (@Stock), Tbl_ProductoBodega.ADU,
[Vs_InventarioEnTransitoAcumulado_BETA].CantTotalInsumo, Tbl_ProductoBodega.IdProducto,
Tbl_ProductoBodega.IdBodega
FROM
Tbl_ProductoBodega
INNER JOIN
[Vs_InventarioEnTransitoAcumulado_BETA] ON Tbl_ProductoBodega.IdProducto = [Vs_InventarioEnTransitoAcumulado_BETA].IdProducto
WHERE
Tbl_ProductoBodega.IdProducto = @IdProducto
AND Tbl_ProductoBodega.IdBodega = @IdBodega
--Actualiza las variables locales
SET @FechaDisplayed = DATEADD(DAY, 1, @FechaDisplayed)
SET @Contador = @Contador + 1
SET @Stock= (@Stock) - (SELECT ADU FROM Tbl_ProductoBodega
WHERE IdProducto = @IdProducto AND IdBodega = @IdBodega) +
(SELECT CantTotalInsumo FROM [Vs_InventarioEnTransitoAcumulado_BETA]
WHERE IdProducto = @IdProducto AND IdBodega = @IdBodega)
END
--Finaliza ciclo While
END
Значения со знаком @ - это значения, которые пользователь должен ввести в программное обеспечение
Это код, над которым я работал:
DataTable dt = new DataTable();
String conStr = "Data Source=MSSQLSERVERWA;Initial Catalog=WA_PRUEBAS";
SqlConnection con = new SqlConnection(conStr);
SqlCommand com = new SqlCommand("SPS_PronosticoStock", con);
com.Parameters.AddWithValue(" @IdProducto", Convert.ToInt32(textBox3.Text));
com.Parameters.AddWithValue("@IdBodega", Convert.ToInt32(textBox4.Text));
com.Parameters.AddWithValue("@FechaInicio", Convert.ToInt32(textBox1.Text));
com.Parameters.AddWithValue("@FechaFin", Convert.ToInt32(textBox2.Text));
com.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(com);
try
{
con.Open();
da.Fill(dt);
}
catch (Exception)
{
throw;
}
finally
{
if (con.State == ConnectionState.Open)
con.Close();
}
da.Fill(dt);
gridControl1.DataSource = dt;