在 asp.net 中取下拉列表的值
Posted
技术标签:
【中文标题】在 asp.net 中取下拉列表的值【英文标题】:Taking Value of dropdownlist in asp.net 【发布时间】:2013-12-24 19:44:33 【问题描述】:使用内部连接并从 3 个表中获取数据后,我想显示分配给 Jennifer 小姐的课程名称,Tchr_ID
是 4,ddlcourse
是 dropdown list
id
SqlCommand cmd = new SqlCommand(@"
SELECT
Course.Course_name,
Tchr_course_ID
FROM Course
INNER JOIN CourseOffering
ON Course.Course_ID=CourseOffering.Course_ID
INNER JOIN Tchr_Course
ON Tchr_Course.Course_offer_ID=CourseOffering.Course_offer_ID
where Tchr_Course.Tchr_ID = 4", conn);
SqlDataReader dr = cmd.ExecuteReader();
ddlcourse.DataSource = dr;
ddlcourse.Items.Clear();
ddlcourse.DataTextField = "Course_name";
ddlcourse.DataValueField = "Tchr_course_ID";
ddlcourse.DataBind();
获取后,我将下拉列表textfield
显示为课程名称,我将datavaluefiled
应用为tch_Course_ID
,因为当用户选择课程时,其tchr_course_ID
将保存在数据库中。为了保存 id 我正在使用 ddlcourse.SelectedItem.Value
但这在我关于外键的插入语句中给了我错误。它没有考虑所选课程的价值。为什么?我该如何纠正?
这些表都参与其中..
课程表:(其中有课程列表)==> (Course_ID,Course_name)
CourseOffering 表:(其中记录了这些课程是 本学期提供)==> >(Course_offer_ID,Course_ID)
Tchr_Course 表:(有该课程分配到的记录 这位老师)==>(Tchr_course_ID、Course_offer_ID、Tchr_ID)
档案表:(简单包含教师记录)== > (Tchr_ID、姓名、电子邮件)
【问题讨论】:
请告诉您要插入的表格? 这基本上是一个讲座上传系统,教师必须先选择一门课程,然后她必须上传一个文件。所以插入 Lecture 文件或插入 tchr_Course_ID 的表是.. Lecture (Lecture_ID,Tchr_Course_ID,LEcture_File) 请确认 tch_course_id 是否存在于 tch_course_table 中? Id 确实存在于表中,但插入语句仍然给我错误.. 【参考方案1】:使用SelectedValue
处于使用SelectedItem.Value
的状态,因为您的ddlcourse
具有DataValueField
作为Tchr_course_ID
,因此只有SelectedValue
为您提供Tchr_course_ID
所需的结果。
【讨论】:
我按照你说的做了,但是这个错误仍然出现“SQL 执行失败。INSERT 语句与 FOREIGN KEY 约束“FK_Lecture_Tchr_Course”冲突。冲突发生在数据库“SproTrack”,表“dbo。 Tchr_Course",列 'Tchr_course_ID'。语句已终止。" @user3005601 复制代码并检查SelectedValue
具有的内容以及表Tchr_Course
中存在的相同值
耶!! ddlcourse.SelectedValue 给出 0(零),而它应该选择所选课程的 tchr_course_id ......为什么会这样?以上是关于在 asp.net 中取下拉列表的值的主要内容,如果未能解决你的问题,请参考以下文章
根据上一个列表中选择的值填充下拉列表(asp.net mvc3)