0

为什么在此代码中忽略 where 子句?它似乎忽略了更新中的 where 子句,这意味着每条记录都已被覆盖。我怎样才能解决这个问题?任何帮助将不胜感激。

namespace ResitAssignment2
{
    public partial class HomeCareVisitEddit : Form
    {
        public HomeCareVisitEddit()
        {
            InitializeComponent();
        }

        private void SubmitHCVA_Click(object sender, EventArgs e)
        {
            SqlConnection a = Database.GetConnection();
            a.Open();

            string sqltext;
            sqltext = @"update HomeCareVisit set
             PatientNo=@PatientNo,
             FurtherVisitRequired=@FurtherVisitRequired,
             AdvisoryNotes=@AdvisoryNotes,
             Prescription=@Prescription,
             TreatmentProvided=@TreatmentProvided,
             ActualVisitDateTime=@ActualVisitDateTime,
             Priority=@Priority,
             ScheduledDateTime=@ScheduledDateTime,
             TreatmentInstructions=@TreatmentInstructions,
             MedicalStaffID=@MedicalStaffID
              WHERE
             VisitRefNo=VisitRefNo";

            SqlCommand command = new SqlCommand(sqltext, a);

            try
            {
                using (a)
                {
                    command.Parameters.AddWithValue("@PatientNo", PatientNo.Text);
                    command.Parameters.AddWithValue("@FurtherVisitRequired", FurtherVisitRequired.Text);
                    command.Parameters.AddWithValue("@AdvisoryNotes", AdvisoryNotes.Text);
                    command.Parameters.AddWithValue("@Prescription", Prescription.Text);
                    command.Parameters.AddWithValue("@TreatmentProvided", TreatmentProvided.Text);
                    command.Parameters.AddWithValue("@ActualVisitDateTime",SqlDbType.DateTime );
                    {
                        DateTime.Parse(ActualVisitDateTime.Text);
                    };
                    command.Parameters.AddWithValue("@Priority", Priority.Text);
                    command.Parameters.AddWithValue("@ScheduledDateTime",SqlDbType.DateTime );
                    {
                        DateTime.Parse(ScheduledDateTime.Text);
                    };

                    command.Parameters.AddWithValue("@TreatmentInstructions", TreatmentInstructions.Text);
                    command.Parameters.AddWithValue("@MedicalStaffID", MedicalStaffID.Text);
                    command.Parameters.AddWithValue("@VisitRefNo", VisitRefNo.Text);
                    command.ExecuteNonQuery();

                    MessageBox.Show("Record altered");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            a.Close();
        }

        private void HomeCareVisitEddit_Load(object sender, EventArgs e)
        {
            SqlConnection a = Database.GetConnection();
            a.Open();

            string sqlText = "select * from HomeCareVisit where VisitRefNo =" + VisitRefNo;
            SqlCommand command = new SqlCommand(sqlText, a);
            SqlDataReader HomeCareVisitData = command.ExecuteReader();

            while (HomeCareVisitData.Read())
            {
                //DateTime actual = DateTime.Parse("ActualVisitDateTime");
                //DateTime scheduled = DateTime.Parse("ActualVisitDateTieme");
                PatientNo.Text = HomeCareVisitData["PatientNo"].ToString();
                FurtherVisitRequired.Text = HomeCareVisitData["FurtherVisitRequired"].ToString();
                AdvisoryNotes.Text = HomeCareVisitData["AdvisoryNotes"].ToString();
                Prescription.Text = HomeCareVisitData["Prescription"].ToString();
                TreatmentProvided.Text = HomeCareVisitData["TreatmentProvided"].ToString();
                ActualVisitDateTime.Text = HomeCareVisitData["ActualVisitDateTime"].ToString();
                Priority.Text = HomeCareVisitData["Priority"].ToString();
                ScheduledDateTime.Text = HomeCareVisitData["ScheduledDateTime"].ToString();
                TreatmentInstructions.Text = HomeCareVisitData["TreatmentInstructions"].ToString();
                MedicalStaffID.Text = HomeCareVisitData["MedicalStaffID"].ToString();
             }
             a.Close();
         }
     }
}
4

2 回答 2

8

WHERE VisitRefNo=VisitRefNo";应该是WHERE VisitRefNo=@VisitRefNo";

于 2013-08-19T16:52:41.223 回答
2
WHERE VisitRefNo=VisitRefNo

应该

WHERE VisitRefNo=@VisitRefNo
于 2013-08-19T16:53:39.597 回答