문제

C#에서 Oledbadapter를 사용하고 테이블에 기본 키가없고 어떻게이를 수행 할 수 있습니까?

도움이 되었습니까?

해결책

여기 예입니다 VB에서는 일반적인 아이디어를 줄 수 있습니다.

다른 팁

항상 사용하는 행을 찾을 수 있습니다 myTable.Select("myColumn Like 'unique value'");

기본 키를 추가 할 수 있습니까?

어떤 종류의 고유 한 ID (PK이어야 함)가 없으면 업데이트 할 행을 알 수있는 방법이 없습니다.

타사 데이터베이스를 사용했을 때도 같은 문제가 발생했습니다. 데이터베이스에는 기본 키가 없지만 고유 한 필드 조합이 있습니다.

먼저 데이터 가능성을 만들고 고유 한 조건을 사용하여 쿼리 결과로 채우십시오.

DataTable dt = new DataTable();
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand(sqlstring, ACCESS_dbConnection);
adapter.Fill(dt);

둘째, DS를 열별로 업데이트 된 데이터로 바꾸십시오.

foreach (DataColumn col in datarow.Columns)
{
    Debug.WriteLine(col.ColumnName);
    ds.Rows[0][col.ColumnName] = datarow.Rows[0][col.ColumnName];
}

그런 다음 업데이트 할 수 있습니다.

OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter);
adapter.UpdateCommand = cb.GetUpdateCommand();
adapter.InsertCommand = cb.GetInsertCommand();
adapter.Update(ds);

이것은 나를 위해 작동합니다.

하나의 쿼리 데이터 만 있다고 확신 할 때만 수행하십시오. 그렇지 않다면 "if"확인을 추가 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top