2014-02-25 4 views
0

나는 업데이트 쿼리를하고 싶다.asp.net 회원을 채우기 위해

데이터베이스 요구 사항을 충족시키기 위해 Access 공급자를 사용할 수있는 ASP.Net 멤버십을 소개하는 자습서를 발견했습니다. 그러나 고객의 기존 Access 데이터베이스가 있지만이 기존 데이터베이스를 새 ASPNetDB.mdb에 복사하는 방법을 모르겠습니다. 내가 아는 한 SQL 제공자와 동일합니다.

모든 테이블이 서로 관련되어 있으므로 새 레코드를 입력 할 수 없습니다. UserName 열, 암호, 전자 메일 및 새 필드를 새 ASPNetDB.mdb에 추가하고 싶습니다. 이 일을 어떻게 하죠?

답변

0

한 데이터베이스에서 다른 데이터베이스로 레코드를 복사하는 대신 사용자 지정 멤버 자격 공급자를 만들고 동일한 기존 데이터베이스를 사용하는 것이 좋습니다.

기본적으로 MembershipProvider 클래스에서 상속받은 클래스를 만들고 MembershipProvider 클래스에서 모든 메서드를 구현합니다. I.E. ChangePassword, CreateUser, DeleteUser 등 ... 구현시 사용자 정의 코드를 작성하여 이미 존재하는 테이블에 액세스 할 수 있습니다.

이렇게하면 현재 데이터베이스를 유지하면서 ASP.NET 멤버 자격을 사용할 수 있습니다.

다음은 샘플 구현이 포함 된 MSDN 기사입니다. Sample Membership Implementation

+0

나는 이것을 시도 할 것이다. 기존 데이터베이스를 사용하고 싶지만 회원 경험이 엉망이라고 확신하지 못합니다. – Emwat

0

제안 된 것처럼 테이블 구조가 동일하면 원본 데이터베이스의 복사본을 만들고 ASPNetDB.mdb와 같은 이름으로 다시 이름을 바꾸는 것이 좋습니다.

이전 데이터를 가져 오려면 다시 ASPNetDB.mdb를 열고 ASP를 열고 이전 데이터베이스에서 데이터 + 테이블을 가져옵니다. 액세스 할 수 있고 테이블을 가져오고 관련된 데이터 테이블에 BRING을 보냅니다. 이렇게하면 새 로컬 테이블이 만들어 지지만 다시 동일한 로컬 테이블이 나타납니다. (그래서 ASPNetDB의 기존 테이블을 삭제하고 다른 테이블을 임포트하십시오).

테이블 데이터가 비어있는 경우 기존 테이블로 가져올 수도 있습니다. 따라서 빈 테이블을 가정하면 compact + repair가 자동 숫자를 다시 설정 한 다음 이전 데이터베이스에 연결하고 quend 추가를 사용할 수 있습니다. 몇 개의 테이블 만 있으면이 작업을 수행 할 것입니다. 참조 무결성이 적용되는 경우 먼저 하위 레코드를 추가하는 것이 거의 의미가 없으므로 "상위"테이블을 먼저 가져와야합니다!

그러나 이전의 기존 데이터베이스의 전체 복사본을 만든 다음 ASPNetDB로 다시 명명하는 것이 왜 테이블의 소유권이 동일 할 경우 작동하지 않는지 나는 알 수 없습니다.

+0

기존 Access 데이터베이스는 Access Provider 자습서에서 제공 한 것과 매우 다릅니다. 액세스 공급자의 데이터베이스는 SQL 공급자와 동일합니다. – Emwat

+0

mdb 공급자 테이블을 기존 응용 프로그램으로 가져오고 결과가 동일한 구조가 될지 확실하지 않은 경우 또는 기존 Access 데이터베이스에서 기존 테이블을 사용 하시겠습니까? 기존 테이블에 데이터를 추가하여 제공자 테이블을 기존 앱으로 끌어 넣은 다음이 테이블을 채우는 것입니다. 각 사용자에게 역할 등을 할당해야합니다. –

관련 문제