2016-06-08 39 views
1

在我的Web應用程序在Visual Studio Web窗體中創建,它是從SQL Server數據庫推送和提取數據。我遇到了一個問題需要幫助。在費率頁面上,是一個顯示當前期間費率的gridview,共有6列。複製SQL服務器中的3行,但更改期間ID

我需要把一個按鈕,當點擊複製/複製最後3行是Period_Id,描述,Rate1,Rate2,Rate3,Rate4。問題是期間ID,每3行它被分配1個IE。

Period_Id, Description, Rate1,Rate2,Rate3,Rate4 

1  , Example , 7 , 6 , 7 , 0 
1  , Example ,8  , 4 ,1 , 100 
1  , Example ,8  , 4 ,1 , 400 

當行被複制的Period_Id必須改變,但遵循的1,1,1順序和再次複製時變成2,2,2變成3,3,3並保持與之相關的其他數據。

回答

0

如果你只是想把這個數據插入表中,只改變period_id,你可以用select來做一個簡單的插入操作。

樣本數據;

CREATE TABLE #TestData (Period_Id int, Description varchar(10), Rate1 int, Rate2 int, Rate3 int, Rate4 int) 
INSERT INTO #TestData (Period_Id, Description, Rate1, Rate2, Rate3, Rate4) 
VALUES 
(1,'Example',7,6,7,0) 
,(1,'Example',8,4,1,100) 
,(1,'Example',8,4,1,400) 

你的插入語句就像這樣;

INSERT INTO #TestData (Period_Id, Description, Rate1, Rate2, Rate3, Rate4) 
SELECT Period_Id +1 
,Description 
,Rate1 
,Rate2 
,Rate3 
,Rate4 
FROM #TestData 

而你的結果看起來像這樣;

Period_Id Description Rate1 Rate2 Rate3 Rate4 
1   Example  7  6  7  0 
1   Example  8  4  1  100 
1   Example  8  4  1  400 
2   Example  7  6  7  0 
2   Example  8  4  1  100 
2   Example  8  4  1  400 
1

首先,您應該爲該表定義一個Primary Key

其次,您可以通過執行以下步驟來完成此操作。

  1. 創建在SQL Server數據庫
  2. 調用從應用程序下面的存儲過程一個存儲過程。

`

Create Procedure CopyRates 
@PeriodID INT 
AS 
BEGIN 

    //Populate a temp table with all the values you want to copy from <YOURTABLE> 
CREATE TABLE #TestData (Period_Id int, Description varchar(10), Rate1 int, Rate2 int, Rate3 int, Rate4 int) 

INSERT INTO #TestData (Period_Id, Description, Rate1, Rate2, Rate3, Rate4) 
VALUES 
(Select PeriodID, Descriptiom Rate1, Rate2, Rate3, Rate4) 
From <YOURTABLE> 
Where PeriodID = @PeriodID 
) 

    INSERT INTO <YOURTABLE> (Period_Id, Description, Rate1, Rate2, Rate3, Rate4) 
    SELECT Period_Id +1, Description,Rate1, Rate2, Rate3, Rate4 
    FROM #TestData 
END