我使用的是vb。我有一个aspx页面,其中包含一个TextBox(txtStudentName
)、一个DropBox(dropdownlistGroupName
)和一个保存按钮。
student table
StudentID StudentName GroupID
1 ABC 1
2 DEF 1
3 GHI 2
Group table
GroupID GroupName
1 Pear
2 Apple
3 Strawberry
当我点击Save
按钮时,它会插入student,表示该学生属于该组名称。
但在保存按钮下,我将如何检查/验证这个组名,例如苹果,是否只有20名学生属于该组。如果用户点击保存第21个学生,它应该显示一条消息,说明该组已满。
我不知道如何与数据库核对。
希望有人能告诉我应该做什么,并附上一个对我来说很好、很容易理解的例子。
在按钮的点击事件中,从STUDENT对将插入的GroupID进行计数。如果计数>19,则显示错误,如果计数<20,插入记录。
如果STUDENT中已经有20条或更多记录,您也不能允许给定的GroupID可供选择。例如,如果您有GroupID填充组合框,则可以更改填充组合框的条件,使其仅包括计数<20.
即使我只显示少于20条记录的GroupID(在填充组合框时),我仍然会在插入之前检查STUDENT中的计数,以防在填充组合盒后其他人插入记录。
在学生表中插入新行之前,我将使用以下方法来确定组中的学生数量:
int count;
using (SqlConnection connection = new SqlConnection())
{
using (SqlCommand command = new SqlCommand("SELECT COUNT(*) FROM [Student] WHERE [GroupID] = @GroupID", connection))
{
command.Parameters.AddWithValue("@GroupID", groupId);
connection.Open();
count = (int)command.ExecuteScalar();
}
}
if (count > 20)
{
// Display error message.
}
else
{
// Insert row into Student table
}
或者,您可以将该行插入Student表,然后进行计数,如果计数大于20,则回滚事务并显示消息。