2017-01-07 2 views
0

Я пытался обновить данные до базы данных, но я встретил эту проблему. Я попытался удалить таблицу и создать новую таблицу, но проблема все еще сохраняется. Ниже приведены коды. Любая помощь будет очень оценилНедопустимое имя столбца при выполнении обновления

public int UpdateNOK(string wardClass, DateTime admissionDT, string nokFName, string nokLName, string nokNRIC, DateTime nokDOB, string nokGender, string nokNationality, string nokRelationship, int nokContactH, int nokContactHP, string nokEmail, string nokAddr1, string nokAddr2, string nokState, int nokZIP, string nokCountry, DateTime dischargeDT, string patientNRIC) 
    { 
     StringBuilder sqlStr = new StringBuilder(); 
     int result = 0; 
     SqlCommand sqlCmd = new SqlCommand(); 

     sqlStr.AppendLine("Update patientAdmission"); 

     sqlStr.AppendLine("SET wardClass = @parawardClass,admissionDT = @paraadmissonDT, nokFName = @parapatientNokFname, nokLName = @parapatientNokLname,nokNRIC = @parapatientNokNRIC, nokDOB = @parapatientNOKDOB, nokGender = @parapatientNokGender, nokNationality = @parapatientNokNationality,"); 

     sqlStr.AppendLine("nokRelationship = @parapatientNokRelationship,nokContactH = @parapatientNokContactH,nokContactHP = @parapatientNokContactHP, nokEmail = @parapatientNokEmail, nokAddr1 = @parapatientNokAddr1,nokAddr2 = @parapatientNokAddr2,nokState = @parapatientNokState, nokZIP = @parapatientNokZIP,"); 

     sqlStr.AppendLine("nokCountry = @parapatientNokCountry, dischargeDT = @paradischargeDateTime"); 

     sqlStr.AppendLine("WHERE patientNRIC = @parapatientNRIC"); 

     try 
     { 
      SqlConnection myConn = new SqlConnection(DBConnect); 

      sqlCmd = new SqlCommand(sqlStr.ToString(), myConn); 

      sqlCmd.Parameters.AddWithValue("@parawardClass", wardClass); 
      sqlCmd.Parameters.AddWithValue("@paraadmissonDT", admissionDT); 
      sqlCmd.Parameters.AddWithValue("@parapatientNokFname", nokFName); 
      sqlCmd.Parameters.AddWithValue("@parapatientNokLname", nokLName); 
      sqlCmd.Parameters.AddWithValue("@parapatientNokNRIC", nokNRIC); 
      sqlCmd.Parameters.AddWithValue("@parapatientNOKDOB", nokDOB); 
      sqlCmd.Parameters.AddWithValue("@parapatientNokGender", nokGender); 
      sqlCmd.Parameters.AddWithValue("@parapatientNokNationality", nokNationality); 
      sqlCmd.Parameters.AddWithValue("@parapatientNokRelationship", nokRelationship); 
      sqlCmd.Parameters.AddWithValue("@parapatientNokContactH", nokContactH); 
      sqlCmd.Parameters.AddWithValue("@parapatientNokContactHP", nokContactHP); 
      sqlCmd.Parameters.AddWithValue("@parapatientNokEmail", nokEmail); 
      sqlCmd.Parameters.AddWithValue("@parapatientNokAddr1", nokAddr1); 
      sqlCmd.Parameters.AddWithValue("@parapatientNokAddr2", nokAddr2); 
      sqlCmd.Parameters.AddWithValue("@parapatientNokState", nokState); 
      sqlCmd.Parameters.AddWithValue("@parapatientNokZIP", nokZIP); 
      sqlCmd.Parameters.AddWithValue("@parapatientNokCountry", nokCountry); 
      sqlCmd.Parameters.AddWithValue("@paradischargeDateTime", dischargeDT); 
      sqlCmd.Parameters.AddWithValue("@parapatientNRIC", patientNRIC); 


      myConn.Open(); 
      result = sqlCmd.ExecuteNonQuery(); 

      myConn.Close(); 
      Console.WriteLine(result); 


     } 
     catch (Exception ex) 
     { 
      logManager log = new logManager(); 
      log.addLog("patientNOKDAO.UpdateNOK", sqlStr.ToString(), ex); 

     } 
     return result; 

    } 
} 

ответ

0

Вы должны проверить определение таблицы (sp_help) против ваших используемых столбцов в таблице patientAdmission:

wardClass 
admissionDT 
nokFName 
nokLName 
nokNRIC 
nokDOB 
nokGender 
nokNationality 
nokRelationship 
nokContactH 
nokContactHP 
nokEmail 
nokAddr1 
nokAddr2 
nokState 
nokZIP 
nokCountry 
dischargeDT 
patientNRIC 

Если по умолчанию база данных сортировки является чувствительны к регистру один, имена столбцов выше, должны быть точно так, как d вырезано в таблице (случай не может быть разным).

Одним из способов быстрее найти проблему является запуск профайлера SQL и просмотр точного запроса к базе данных. Скопируйте-вставьте его туда и запустите в файл запроса Management Studio (SSMS) (используйте BEGIN TRAN .. ROLLBACK, чтобы убедиться, что на самом деле ничего не изменится, когда вы его заработаете). SSMS попытается указать точный столбец с проблемой при нажатии на ошибку.

+0

Похоже, проблема в том, что мне нужно объявить масштабируемую переменную at wardClass –

+0

О, это похоже на другую проблему (не относящуюся к названию). Рад, что вы нашли причину. – Alexei

+0

Теперь я пытаюсь разрешить это, перейдя по моим кодам. Спасибо btw –

Смежные вопросы