저는 TableAdapters를 처음 사용하기 때문에 어떤 일이 일어나는지 확신 할 수 없습니다. 기본적으로 생성 된 데이터 집합을 사용하여 다른 스키마를 사용하여 한 데이터베이스에서 다른 데이터베이스로 데이터를 내보내려고합니다. 코드를 단계별로 실행할 때 대상 데이터베이스의 행을 채우는 관점에서 모든 것이 잘 작동하는 것처럼 보입니다. 그러나 대상 데이터베이스에 행을 추가하려고하면 행이 삽입되지 않는 것 같습니다. 너희들은 어떤 생각을 가지고 있니? 프로젝트에 추가 된 데이터베이스를 출력 디렉토리로 복사하지 않도록 설정 했으므로 웹에서 본 제안이 작동하지 않는 것 같습니다.TableAdapter를 사용하여 Access 2003 DB에 행 삽입
OleDbConnection oleDbConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Database\database.mdb;");
SomeTableAdapter tableAdapter = new SomeTableAdapter();
tableAdapter.Connection = oleDbConnection;
tableAdapter.Connection.Open();
SomeDataSet.SomeDataTable dataTable = tableAdapter.GetData();
SomeDataSet.SomeDataRow dataRow = null;
// Do some checks on the existing rows
// Creation of new row is necessary
if (dataRow == null)
dataRow = dataTable.NewSomeRow();
// Populate row fields
dataTable.AddSomeRow(dataRow);
dataTable.AcceptChanges();
}
else
{
// Update exiting row
}
tableAdapter.Update(dataTable);
tableAdapter.Connection.Close();
팁 주셔서 감사합니다. 나는 정말로 그 문제를 일으키는 것이 무엇인지 알아 냈다. 나는 멍청한 감독을했고 필요한 분야를 채우는 것을 잊었다. 그래도 고마워. –
잠깐, AcceptChanges를 사용하고 있습니다. 작동합니까? 그럴 경우 모든 일을 잘못 처리 했음에 틀림 없습니다 ... –
AcceptChanges를 제거했고 효과가있었습니다. 하지만 예, 방금 옳았다는 것을 알았습니다. AcceptChanges를 사용하면 데이터를 쓸 수 없습니다. 실제로 코드에서 AcceptChanges를 사용하지 않으려 고 시도했지만 여전히 작동하지 않았습니다. 필요한 필드를 채우지 않아서였습니다. –