1
this question을 참조하십시오. 강력하게 형식화 된 데이터 집합을 사용하여 SQLIte 데이터베이스에 대해 실행하는 다음 코드가 있습니다.강력한 형식의 TableAdapter의 업데이트/삽입 명령에 명령/SQL 문을 추가하는 방법은 무엇입니까?
messagesAdapter.Update(messages);//messages is a DataTable
var connection = messagesAdapter.Connection;
var retrieveIndexCommand= connection.CreateCommand();
retrieveIndexCommand.CommandText = @"Select last_insert_rowid()";
connection.Open();
var index = retrieveIndexCommand.ExecuteScalar();
connection.Close();
last_inser_rowid()는 항상 0을 반환하므로이 방법은 작동하지 않습니다. 이 오류는 TableAdapter의 Update 명령에서 사용하는 동일한 연결 중에 호출해야하기 때문에 발생합니다. TableAdapter의 Insert 또는 Update 명령을 변경하여 인덱스를 반환하려면 어떻게합니까?
한 행 접근법 만 시도했는데 작동했습니다! 데이터 세트 디자이너에서 코드를 더블 클릭하여 편집 할 수있는 부분적인 MessagesTableAdapter 클래스에 코드를 추가해야했습니다. 그리고 당신은 객체를 반환하기 때문에 복제 작업 후에 SQLiteCommand에 캐스트를 추가하는 것을 잊었습니다. 아마도 당신의 대답이이 의견을 반영하도록 만들 수 있습니까? 고마워요! – Dabblernl
일부 공급자는 올바른 형식을 반환하는 Clone 메서드를 가지고 있습니다. –