ループ内のストアド プロシージャにパラメータを追加しようとしています。以下は、変数を宣言したコードです。
SqlConnection con = new SqlConnection();
Connect conn = new Connect();
SqlDataReader readerCourseID = null;
con = conn.getConnected();
con.Open();
SqlCommand cmdAssignCourse;
cmdAssignCourse = new SqlCommand("assignCourse", con);
cmdAssignCourse.CommandType = CommandType.StoredProcedure;
cmdAssignCourse.Parameters.Add("@sID", System.Data.SqlDbType.VarChar);
cmdAssignCourse.Parameters.Add("@cID", System.Data.SqlDbType.VarChar);
SqlParameter retValue = cmdAssignCourse.Parameters.Add("return", System.Data.SqlDbType.Int);
以下は、以前に宣言した変数に値を挿入したコードです。
foreach (DataRow row in dt.Rows)
{
//get course id from course name. Pass row["Course Name"].ToString()
int i = getCourseID(row["Course Name"].ToString());
//assignment of the course to student
cmdAssignCourse.Parameters["@sID"].Value = studentCurrID.Value.ToString();
cmdAssignCourse.Parameters["@cID"].Value = i;
retValue.Direction = ParameterDirection.ReturnValue;
cmdAssignCourse.ExecuteNonQuery();
if (retValue.Value.ToString() == "0")
{
MessageBox.Show("Added Course Successfully!");
//return 0;
}
else
{
MessageBox.Show("An error occured! Possibly a duplication of data!");
//return -1;
}
}
ただし、このコードは正常に実行され、「コースが正常に追加されました!」というメッセージが表示されます。一度。しかし、最初の実行が成功した後、1回おきに実行すると、「エラーが発生しました!データが重複している可能性があります!」というメッセージが表示されます。メッセージ。考えられるエラーは、変数をクリアしていないことです。以下の変数をクリアする方法。これで私を助けてください。ありがとう!