2013-08-19 48 views
0

为什么在这段代码中忽略where子句?它似乎忽略了更新的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 
      [email protected], 
      [email protected], 
      [email protected], 
      [email protected], 
      [email protected], 
      [email protected], 
      [email protected], 
      [email protected], 
      [email protected], 
      [email protected] 
       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(); 
     } 
    } 
} 
+1

建议:您可能已经削减了大量的外勤任务,而不会影响实际的问题,让你的问题更容易阅读。 – catfood

回答

2
WHERE VisitRefNo=VisitRefNo 

应该

WHERE [email protected] 
+0

感谢您的帮助。有时眼睛很容易过度看起来这样一个小错误,这使得所有的差异。 –

+0

这就是为什么减小示例的大小是如此有用的解决问题的技巧。 – catfood