0
我一直在嘗試將參數添加到循環內的存儲過程。下面給出的是我聲明我的變量的代碼。C#:將參數添加到循環內的存儲過程
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;
}
}
但是,此代碼運行成功並顯示消息「已成功添加課程!」一旦。但在第一次成功運行後,每隔一次運行它就會給我「發生錯誤!可能是重複的數據!」信息。可能的錯誤不會清除變量。如何清除下面的變量。請幫我解決一下這個。謝謝!
嘗試使用SqlServer的Profiler來看看你的代碼發送到數據庫是正確的。這會讓你知道你的參數值是否改變。 – RePierre
你確定數據表dt中沒有重複條目嗎?爲什麼你將整數作爲varchars傳遞? – podiluska