我试图将2个输出参数从存储过程返回到c#,但事实是,参数@Student_number总是返回1而不是它应该返回的字符串。我已尝试直接在sql管理工作室中执行此操作,但它会正确返回值。
setCommand("sp_EnrollStudent");
cmd.Parameters.AddWithValue("@Class_id", st.classId);
cmd.Parameters.AddWithValue("@Student_id", st.studentId);
cmd.Parameters.AddWithValue("@YearLevel_id",st.yearLevelId);
cmd.Parameters.AddWithValue("@AcademicYear_id", st.acadYearId);
cmd.Parameters.AddWithValue("@Payment_type", st.paymentType);
cmd.Parameters.AddWithValue("@Discount_id", st.discountId);
cmd.Parameters.AddWithValue("@Balance", st.balance);
cmd.Parameters.AddWithValue("@Total_amount", st.totalAmount);
cmd.Parameters.AddWithValue("@xmlData", xml);
cmd.Parameters.AddWithValue("@isEnrolled", st.isEnrolled);
cmd.Parameters.AddWithValue("@Student_number", " ");
cmd.Parameters["@Student_number"].Direction = ParameterDirection.InputOutput;
cmd.Parameters.AddWithValue("@Return_code", 0);
cmd.Parameters["@Return_code"].Direction = ParameterDirection.InputOutput;
cmd.Connection.Open();
cmd.ExecuteNonQuery();
returnVal = int.Parse(cmd.Parameters["@Return_code"].Value.ToString());
Form_RegistrationDetails_View.studentNumber = cmd.Parameters["@Student_number"].Value.ToString();