我现在要实现用gridview批量导入一些数据,例如:产品条码(barcode) 都是单个的产品,我现在就是要实现几步判断,一。判断这个产品是不是在数据库中有记录,注意的一点是 数据库中存储的只是一个号段 (也就是说一个号段包含多个产品)。二。我要判断现在导入的时间是否小于第一次导入时间的365天(也就是说是不是在第一次时间的+365天之内)。再把合格的显示在一个geidview中,不合格的显示在一个gridview中。过程是这样的,第一个是发货,成箱号发的,然后我要验证这一箱中的某个产品是不是在保质期(一年)范围内,是的话合格 小弟不知道如何实现这个逻辑
问题的关键在于验证,是否在数据库中存在一笔记录,这个已经解决,还有就是要验证时间有没有过保质期。住要还是我用的是gridview 要在导入的时候循环验证 ,再把不同的结果保存到不同的gridview中,才算完成需求
USE [WMS_DB1]
GO
/****** 对象: Table [dbo].[发货明细] 脚本日期: 08/06/2009 10:45:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[发货明细](
[成箱编号] [nvarchar](32) COLLATE Chinese_PRC_CI_AS NOT NULL,
[产品编码] [nvarchar](32) COLLATE Chinese_PRC_CI_AS NOT NULL,
[发货日期] [smalldatetime] NOT NULL,
CONSTRAINT [PK_发货明细] PRIMARY KEY CLUSTERED
(
[成箱编号] ASC,
[产品编码] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY](2)、存储过程代码
USE [WMS_DB1]
GO
/****** 对象: StoredProcedure [dbo].[p_ExpirationCheck] 脚本日期: 08/06/2009 10:38:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[p_ExpirationCheck]
-- Add the parameters for the stored procedure here
@ProductID nvarchar(32)
AS
DECLARE @ret SMALLINT
DECLARE @IssueDate DateTime
DECLARE @DiffDay SMALLINT
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON; -- Insert statements for procedure here
SET @IssueDate = (SELECT TOP 1 a.发货日期
FROM 发货明细 AS a INNER JOIN
发货明细 AS b ON a.成箱编号 = b.成箱编号
WHERE (a.产品编码 >= @ProductID) AND (b.产品编码 <= @ProductID))
IF (@IssueDate Is NULL)
RETURN -1
SET @DiffDay = Datediff(day,@IssueDate,getdate()) IF (@DiffDay <= 365)
BEGIN
RETURN 1
END
ELSE
BEGIN
RETURN 0
END
END
SET @IssueDate = (SELECT TOP 1 InputTime
FROM t_Block
WHERE (Start_Barcode >= @ProductID) AND (End_Barcode <= @ProductID))
SET @IssueDate = (SELECT TOP 1 InputTime
FROM t_Block
WHERE (@ProductID >= Start_Barcode) AND (@ProductID <= End_Barcode))
。现在就是要验证1000个产品的条码,有没有过期,我是采用GRIDVIEW导入的形式,也就是说我在导入的同时要判断该个产品是不是发过货的记录,该产品有没有过保质期,然后把合格和不合格的分不同的gridview显示,拜托,17楼可以自己做个例子,建立表,实现过程,测试没有问题,实现需求,发到我油箱么?[email protected].多谢了,小弟实在太菜。OK马上给分
(1).用一个DataSet加入两张表,一个表对应保质期,一张表对应过期的,再把DataSet绑定到你的两个DataGridView.
(2).解析退货清单Excel,每个产品编号去调用上面的存储过程,判断是否过期,然后写入相应的DataGridView.