【发布时间】:2017-01-31 06:37:24
【问题描述】:
我有类似的东西:
-
Course: CID - CName -
Discipline: MID - MNamev - MProf
我必须创建一个学科列表,因为一门课程将不止一门。所以我按照这个link 创建了第三个表,就像这样:
CREATE TABLE coursedisciplines (
courseID int references curso (CID),
disciplineID int references materias (MID),
constraint pkcoursedis primary key (courseID, disciplineID)
)
我可以为第一个表(课程)和第二个表(学科)添加数据。可悲的是,当尝试使用第三个连接它们时,我收到一个关于语法的错误。我查找了文档,但没有找到我要查找的内容。这是代码的一部分。
id = cmd.LastInsertedId;
try
{
cmd.CommandText = "INSERT INTO materias(MName, MProf) VALUES (@MName, @MProf)";
cmd.Parameters.AddWithValue("@MName", txtMName.Text);
cmd.Parameters.AddWithValue("@MProf", txtMProf.Text);
cmd.ExecuteNonQuery();
//The error is below
cmd.CommandText = "INSERT INTO coursedisciplines(courseID, disciplineID) VALUES(id, SELECT MID FROM discipline WHERE MName = '"+ txtMName.Text +"')";
cmd.ExecuteNonQuery();
}
你们知道哪里不对吗?这种方法真的很糟糕吗?我读了一些关于序列化的文章,但不想这样。
编辑它在这里工作。不得不使用选择插入而不是选择值。谢谢!
【问题讨论】:
-
错误信息到底是什么?
-
请添加特定语言的标签。是
C#还是什么? -
错误是:“行中有一个 sintax 错误,请检查文档”,类似的。上次我添加一种语言时,你们不赞成我询问它与 c# 的关系。所以,因为它只是关于mysql,我认为没有必要在帖子中添加c#。
标签: mysql