C#: 기본 키없이 데이터 세트를 업데이트하십시오
-
06-07-2019 - |
문제
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"확인을 추가 할 수 있습니다.
제휴하지 않습니다 StackOverflow