2017-12-14 6 views
0

Button2는 편집 버튼입니다. 이제 텍스트 상자에 표시되는 데이터를 편집하고 편집을 눌러 값을 변경하고 데이터베이스에 저장하고 gridview에서도 표시하도록되어 있습니다. 하지만 어떤 이유에서 newEmployee.FirstName이 null이라고 말하면 어떻게해야합니까?편집 된 데이터를 데이터베이스에 저장할 수 없거나 NULL을 반환합니다. 어떻게 해결합니까?

private void button2_Click(object sender, EventArgs e) 
    { 

     Employee Emp = SetValues(textBox1.Text, textBox2.Text, textBox3.Text); 
     bool result = UpdateEmployee(Emp); 
     ClearAll(); 
     Display(); 

    } 

    public bool UpdateEmployee (Employee Emp) 
    { 
     bool result = false; 
     using (var entity = new NorthwindEntities()) 
     {    
      Employee newEmployee = entity.Employee.Where(x => x.EmployeeID == Emp.EmployeeID).Select(x => x).FirstOrDefault(); 
      newEmployee.FirstName = Emp.FirstName; 
      newEmployee.LastName = Emp.LastName; 
      newEmployee.BirthDate = Emp.BirthDate;     
      entity.SaveChanges(); 
      result = true; 
     } 
     return result; 
    } 

    private Employee SetValues(string FirstName, string LastName, string BirthDate) 
    { 
     Employee Emp = new Employee(); 
     Emp.FirstName = FirstName; 
     Emp.LastName = LastName; 
     Emp.BirthDate = BirthDate; 
     return Emp; 
    } 
+0

일 경우 upvote에 대답을 동의 해주세요 –

답변

0

FirstOrDefault 당신이

확인되지는 null 값을 반환하기 때문에 당신이 오류가 있다고 생각 아래

Employee newEmployee = entity.Employee.Where(x => x.EmployeeID == 
    Emp.EmployeeID).Select(x => x).FirstOrDefault(); 
if(newEmployee!=null) 
{   
    newEmployee.FirstName = Emp.FirstName; 
    newEmployee.LastName = Emp.LastName; 
    newEmployee.BirthDate = Emp.BirthDate;     
    entity.SaveChanges(); 
    result = true; 
} 

같은 null 검사를 수행하여 당신이 employee을 얻거나하지 않습니다 있는지 확인하십시오

FirstOrDefault 대신 을 사용해야합니다. 왜냐하면 ID가 하나의 ID로 매핑되기 때문에 Id는 대부분의 경우 기본 발의 것으로 생각하기 때문입니다 ue. 그리고 당신은 하나 이상의 기록을 얻지 않을 것입니다, 즉 당신은 단 하나의 기록만을받을 것입니다.


당신은 수정 된 상태로 엔티티의 상태를 설정하는 것을 잊었다 : EntityState.Modified

using (var context = new BloggingContext()) 
{ 
    //set stus to modified 
    context.Entry(existingBlog).State = EntityState.Modified; 
    // Do some more work... 
    context.SaveChanges(); 
} 
0

간단한 대답이 될 것 Emp.FirstName가 null 왜 내가 말할 수 없다고

newEmployee.FirstName = Emp.FirstName ?? string.Empty;

시작하기. 코드에서 다음은 아무 의미 중 하나는 새로운 경우 newEmployee는 직원 ID를 가질 수 없기 때문에

Employee newEmployee = entity.Employee.Where(x => x.EmployeeID == Emp.EmployeeID).Select(x => x).FirstOrDefault(); 

관련 문제