【发布时间】:2015-04-13 20:31:14
【问题描述】:
我需要帮助的人需要更新我的课程名称。
表1:课程
-CurriculumID (PK, Auto_Increment)
-课程名称
表 2:年级
-GradeLevelID(PK,自动增量)
-等级
-CurriculumID(连接到课程表的外键)
结果:
年级 |课程名称
````````````1级````````````K-12`````````
更新到
`````````````2级``````````K-11
问题是每当我按下更新按钮时,它都不会更新,因为我的更新查询不起作用。这是我的代码。请帮忙~
private void btnGLEdit_Click(object sender, EventArgs e)
{
try
{
//update
SqlConnection scon = new SqlConnection();
scon.ConnectionString = "Data Source=.;Initial Catalog=HSPAEnrollmentSytem;Integrated Security=True";
//scon.ConnectionString = "Data Source=D630 ;Initial Catalog=NLEDB; User ID=approj1; Password=approj1";
scon.Open();
SqlCommand cmd = new SqlCommand("UPDATE GradeLevel set GradeLevel = @GradeLevel, CurriculumID = @CurriculumID where GradeLevelID = '" + txtGradeLevelID.Text + "'", scon);
//cmd.Parameters.Add("@GradeLevel", SqlDbType.Int).Value = txtGradeLevel.Text.Trim();
//cmd.Parameters.Add("@CurriculumID", SqlDbType.Int).Value = comboBox1.Text.ToString();
cmd.Parameters.AddWithValue("@GradeLevel", txtGradeLevel.Text);
cmd.Parameters.AddWithValue("@CurriculumID", comboBox1.Text);
cmd.ExecuteNonQuery();
MessageBox.Show("update");
}
catch (SqlException ex)
{
}
}
【问题讨论】:
-
行不通是什么意思?是否引发异常?您收到什么错误消息?
-
“不起作用”是什么意思?你有例外吗?从外观上看,您忽略了发生的任何 sql 异常,而不是抛出它们或至少执行
Debug.Write(ex.StackTrace)- 您是否尝试过调试? -
你们知道外键的更新查询吗?我只是无法更新它。因为它应该更新课程名称而不是课程 ID。就像它没有相互连接一样
-
it should update the Curriculum Name not the Curriculum ID您正在更新课程 ID。您的查询中没有任何内容试图更新课程名称。您想用什么来更新名称?更新后应该有什么? -
@JoshPart 我尝试在查询中使用 CurriculumID,因为我认为它会自动连接到 Curriculum 名称。嗯示例:1 年级,课程 k-12(幼儿园 - 12 年级)然后更新到 2 年级,课程 K-13
标签: c# sql-server winforms visual-studio-2010 foreign-keys