我有课程表(CID,CName),另一张表显示每门课程CourseMajor(CID,MNom)的专业。
我有一个曙光名单,其中包含专业数字。如果用户从列表中选择一个主要号码,则应该填写来自所选专业的课程。
我有以下代码向我展示所有课程,不仅仅是所选主要编号的课程! 我使用LEFT JOIN,RIGHT JOIN,INNER JOIN,FULL OUTER JOIN ......并且它们都不起作用。
注意:我使用的是C#,asp.net,vs.net ......
using (SqlConnection con = new SqlConnection(conStr))
{
using (SqlCommand cmd = new SqlCommand("SELECT * FROM TBCourse FULL JOIN TbCourseMajor ON TBCourse.CId = TbCourseMajor.CId AND TbCourseMajor.MNom = '" + DLMNom.SelectedValue + "' ", con))
{
con.Open();
cmd.ExecuteNonQuery();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
reader.Read();
while (reader.Read())
{
DLCName.Items.Add(new ListItem(reader["CName"].ToString(), reader["CNom"].ToString()));
}
}
else { TxtCRN.Text = "Not worked"; }
}
}
这是关于表格的一些细节:
CREATE TABLE [dbo].[TBCourse] (
[CId] INT IDENTITY (1, 1) NOT NULL,
[CNom] INT NOT NULL,
[CName] NVARCHAR (50) NOT NULL,
[Chours] NCHAR (10) NOT NULL,
CONSTRAINT [PK_TBCourse] PRIMARY KEY CLUSTERED ([CId] ASC)
);
CREATE TABLE [dbo].[TbCourseMajor] (
[CId] INT NOT NULL,
[MNom] INT NOT NULL,
PRIMARY KEY CLUSTERED ([CId] ASC),
FOREIGN KEY ([CId]) REFERENCES [dbo].[TBCourse] ([CId]),
FOREIGN KEY ([MNom]) REFERENCES [dbo].[TbMajor] ([MNom])
);
答案 0 :(得分:0)
问题是因为devlin carnage在数据库中说(在存储的数据中),第二个表有一个问题(不是存储数据)它显示为null ..我创建了另一个具有相同数据的表,它完美地工作..谢谢所有抱歉从一开始就无法发现问题。