2017-02-08 1 views
0

강력한 형식의 데이터 집합 행을 보유하는 속성이 있습니다. 데이터 세트에 삽입 및 업데이트 절차를 추가했습니다. 어댑터가 이미 존재하는 행을 전달하면 정보가 성공적으로 업데이트됩니다. 그러나 새 행을 만들면 데이터베이스 테이블에 삽입되지 않습니다. 예외는 전혀 throw되지 않고 리턴 된 int는 항상 0입니다. 새로운 행은 추가되지 않습니다.강력한 형식의 데이터 집합 어댑터 업데이트는 새 행을 삽입하지 않습니다.

private MyDataset.MyDatasetGetDataRow _row; 

private MyDataset.MyDatasetGetDataRow Rowa 
{ 
    get { return _row; } 
    set { _row = value; } 
} 

public void NewOne() 
{  
    MyDatasetTableAdapters.MyDatasetGetDataTableAdapter adapter = new MyDatasetTableAdapters.MyDatasetGetDataTableAdapter(); 
    MyDataset.MyDatasetGetDataDataTable tbl = adapter.GetData(0, 0); 
    MyDataset.MyDatasetGetDataRow row = tbl.NewMyDatasetGetDataRow(); 
    Rowa = row;  
} 

public int Save() 
{ 
    try 
    { 
     int a = -99; 
     using (MyDatasetTableAdapters.MyDatasetGetDataTableAdapter adapter = new MyDatasetTableAdapters.MyDatasetGetDataTableAdapter()) 
     { 
      a = adapter.Update(tbl); 
     } 
     return a; 
    } 
    catch (Exception ex) 
    { 
     throw new Exception("Error: It didn't save. (" + ex.Message + ")"); 
    } 

}

+0

새 기능은 작동하지 않습니다. 어댑터가 작동하려면 텍스트 SQL 문이 필요합니다. 코드에 SQL이 없으므로 Rowa/행은 항상 비어 있습니다. 따라서 읽기가 작동하지 않아서 데이터를 작성했는지 알기가 어렵습니다. – jdweng

+0

어댑터에는 데이터베이스 및 저장 프로 시저에 대한 연결을 통해 선택, 업데이트 및 삽입 SQL 문이 연결되어 있습니다. 기존 행에 대한 업데이트를 언급했지만 새로운 행은 삽입되지 않습니다. Rowa는 데이터를 가지고 있으며 존재하고 null이 아니며 업데이트도 오류가 아니며 단지 0을 반환합니다. –

+0

무엇이 ??? 게시하지 않은 다른 메서드에서 C# 코드를 사용하지 않으면 연결에서 SQL 문이 만들어지지 않습니다. – jdweng

답변

0

행은 테이블에 속하지 않았고, 그래서 데이터 집합 행이 새로 추가되었다는 것을 몰랐다.

관련 문제