Я просто создаю эту хранимую процедуру при выборе palletnumber = datatype is int.
SerialNumber - это varchar.
Тогда номера паллет составляют 1 - 200 ... Но если я введу 2, это показывает 2 с другими номерами паллет.
Я изменяю @search на nchar и все в порядке, но серийный номер имеет ошибку.
Я новичок в хранимой процедуре.
ALTER PROCEDURE [dbo].[sp_SearchFresh]
-- Add the parameters for the stored procedure here
@Search varchar(50)--so that i only have one search engine/input box
AS
SELECt dbo.Monitor.SerialNumber,
WIP.dbo.WIPTEST.PartNumber,
dbo.Monitor.PalletNumber
FROM WIP.dbo.WIPTEST
INNER JOIN dbo.Monitor
ON WIP.dbo.WIPTEST.SerialNumber = dbo.Monitor.SerialNumber
WHERE WIP.dbo.WIPTEST.StatusDescription = 'FG-FRESH'
AND (dbo.Monitor.PalletNumber = @Search
OR dbo.Monitor.SerialNumber LIKE @Search + '%' )
END
это работает .. я буду практиковать динамический SQL. Но как я могу предоставить нулевые значения на моем интерфейсе?
это мой код DAL
public DataSet FGSearch_Grid (пользователь Ientity)
{
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand("sp_SearchFresh", conn);
cmd.CommandType = CommandType.StoredProcedure;
DataSet dSet = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
cmd.Parameters.Add("@Search", SqlDbType.VarChar, 50).Value = user.Search;
try
{
conn.Open();
da.Fill(dSet, "WIPDATA");
conn.Close();
}
catch (SqlException)
{
throw;
}
return dSet;
}