0
我正在使用Visual Basic 2012和Microsoft SQL Server 2008創建一個網頁,該網頁將允許用戶輸入由多個學生招致的學費。 (即:50項新的服務承諾承擔$ 50.00質押會費秋季學期2014)檢查每個CheckBoxList項執行存儲過程的問題
正在填充表如下:
+----------------+--------------+
| Dues_ID | int (pk) |
| Enrollment ID | int |
| Type | varchar(50) |
| Dues_owed | int |
| Description | varchar(MAX) |
+----------------+--------------+
我的PK自動遞增。用戶通過從下拉列表中選擇秋季或春季,以及從下拉列表中選擇一年來輸入enrollment_id。一旦選擇了這些,就會生成一個複選框列表,列出學生在該學期和年份註冊的內容。存儲過程如下:
ALTER PROCEDURE dbo.SelectStudDueIncrCklst
@Term varchar(50),
@Year int
AS
SELECT S.First_name + ' ' + S.Last_name AS Name, E.Enrollment_ID
FROM Student S
INNER JOIN Student_Enrollment E
ON S.Student_ID = E.Student_ID
WHERE
(E.Term = @Term)
AND
(E.Year = @Year)
我想允許用戶選擇多個學生和輸入相同,由於信息,但只有第一個選擇正通過插入存儲過程運行:
ALTER PROCEDURE dbo.InsertStudDues
@Enrollment_ID int,
@Type varchar(50),
@Dues_owed int,
@Description varchar(MAX)
AS
DECLARE
@pkStudDues int
set @pkStudDues = 0
SELECT
@pkStudDues=Dues_ID
FROM
Student_Dues
WHERE
(Enrollment_ID = @Enrollment_ID)
AND
(Type = @Type)
IF @pkStudDues = 0
BEGIN
INSERT INTO dbo.[Student_Dues]
([Enrollment_ID]
,[Type]
,[Dues_owed]
,[Description])
VALUES
(@Enrollment_ID
,@Type
,@Dues_owed
,@Description)
END
我後面的代碼(C#):
protected void AddDuesbtn_Click(object sender, EventArgs e)
{
foreach (ListItem c in StdDueNmcklist.Items)
{
if (!c.Selected) continue;
InsertStudDuesdatcon.Insert();
AddDuesbtn.Visible = false;
CnfrmStudDueAddlbl.Visible = true;
CnfrmStudDueAddbtn.Visible = true;
}
}
就像我說的,但是,它只是插入了選擇的第一個複選框列表。
任何幫助將不勝感激。
謝謝!