2013-08-19 130 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