2010-07-12 5 views
1

아마도 C# 응용 프로그램을 사용하여 Access 데이터베이스 파일에 쓰기를 원합니다. 아마도 WPF를 사용하여 ... 파일을 암호로 보호하기를 원합니다. 암호로 보호되었거나 암호를 제거해야합니까?C# 액세스 DB 파일에 읽기/쓰기

+1

당신은 제트 사용자 수준 보안 암호 또는 데이터베이스 암호를 의미합니까? 이전 버전 인 경우 ODBC 또는 OLEDB를 사용할 수 있습니다. 후자의 경우 ODBC 만 데이터베이스 비밀번호를 지원합니다. OLEDB는 운이 좋지 않습니다. 데이터베이스 암호는 어떤 경우에도 모든 시간을 낭비하기 때문에 데이터베이스 암호 인 경우 완전히 제거하는 것을 고려해야합니다. –

답변

2

사용되어 OleDbConnection을 (하는 보안 유형에 따라

여기에 두 샘플이며, 구현 System.Data.OleDb) 및 올바른 연결 문자열.

공급자 = Microsoft.Jet.OLEDB.4.0; 데이터 원본 = C : \ mydatabase.mdb; 사용자 ID = admin; 암호 =;

+0

OleDb conn = 새 OleDb ("공급자 = Microsoft.Jet.OLEDB.4.0; 데이터 원본 = C : \ mydatabase.mdb; 사용자 ID = admin; 암호 =;"); ... 데이터 소스를 데이터 소스 = mysource와 같은 것으로 설정할 수 있습니까? ?? 하지만 사용자 이름은 무엇입니까? 접근은 파일을 잠그기 위해서만 암호를 취하기 때문에 ... – sikas

+0

기본 사용자 이름은'Admin'입니다. –

1

예, 암호로 보호 된 MS Access 데이터베이스로 작업 할 수 있습니다.

MS Access 데이터베이스에 연결되는 문자열에 USERNAMEPASSWORD을 입력 할 수 있습니다.

작업 그룹 보안 시스템 데이터베이스 표준 MS 액세스 보안으로

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Server\Share\MyData.mdb;Jet OLEDB:System Database=\\Server\Share\MyData.mdw;USER=userid, PWD=password" 

사용 :

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Server\Share\MyData.mdb;User ID=userid;Password=password;" 
+0

연결에 대한 코드를보고 프로세스를 쓰고 가능한 경우 프로세스를 읽으려고합니다. – sikas

+1

두 가지 예제의 차이점은 첫 번째 작업 그룹 파일이 작업 그룹 파일을 지정하고 두 번째 작업 그룹은 두 번째 예제가 해당 버전의 기본 작업 그룹 파일로 정의 된 것을 사용한다는 것입니다. 그 특정 컴퓨터에 Jet의. –

+0

@ David-W-Fenton 맞습니다. 기본 작업 그룹 파일에서 제안하는 것을 사용하는 것 외에도 특정 MDB에 대한 로그인 정보도 사용합니다. 맞습니까? –

2

우리의 C# .Net4.0 윈도우는 MS 액세스에 대한 데이터 연결이 보이는 양식 :

using System.Data.OleDb; 
... 
private void DoIt() 
{ 
    OleDbConnection NamesDB = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=CyberSprocket.mdb"); 

    try 
    { 
    NamesDB.Open(); 
    } 
    catch (Exception ex) { 
     MessageBox.Show(ex.Message); 
     return; 
    } 
    OleDbCommand NamesCommand = new OleDbCommand("SELECT * FROM [names];", NamesDB); 
    OleDbDataReader dr = NamesCommand.ExecuteReader(); 

    string theColumns = ""; 
    for (int column = 0; column < dr.FieldCount; column++) 
    { 
    theColumns += dr.GetName(column) + " | "; 
    } 
    MessageBox.Show(theColumns); 

    NamesDB.Close(); 
}