詳解C 動態建立Access資料庫及密碼

2022-07-16 20:21:11 字數 4252 閱讀 7189

以前工作中需要全新的access資料庫,可以複製資料庫,也可以把新的資料庫放到資源裡面,用新資料庫的時候釋放出來,都感覺不爽,還是動態生成心理舒服。

生成資料庫要使用ado,首先新增引用。

usingsystem.io;   

using

system.data.oledb; 

//連線access資料庫 

using

adox;                              

//引用com:microsoft ado ext. 2.8 for ddl and security  

//新增引用:microsoft actiovex data objects 2.8 library

建立資料庫:

然後使用adodb建立資料庫,直接看**:

stringconn = 

"provider=microsoft.jet.oledb.4.0;data source="

+ filename;  

//建立資料庫

adox.catalog catalog = 

new

catalog();  

try

catch

{}  

//連線資料庫

adodb.connection cn = 

new

adodb.connection();  

cn.open(conn, 

null

,null

, -1);                         

catalog.activeconnection = cn;  

//新建表

adox.table table = 

new

adox.table();  

table.name = 

"adplaylist"

;  adox.column column = 

new

adox.column();  

column.parentcatalog = catalog;  

column.type = adox.datatypeenum.adinteger; 

// 必須先設定字段型別

column.name = 

"id"

;  column.definedsize = 9;  

column.properties[

"autoincrement"

].value = 

true

;  //設定主鍵

"primarykey"

, adox.keytypeenum.adkeyprimary, 

"id"

, ""

, ""

);  

"filename"

, datatypeenum.advarwchar, 50);  

"filedate"

, datatypeenum.addate, 0);  

"filesize"

, datatypeenum.adinteger, 9);  

"orderid"

, datatypeenum.adinteger, 9);  

"sha1"

, datatypeenum.advarwchar, 50);  

try

catch

(exception ex)  

//此處一定要關閉連線,否則新增資料時候會出錯

table = 

null

;  catalog = 

null

;  cn.close(); 

建立加密碼資料庫:建立加密資料庫的時候可把我難住了,因為在access中加密碼的時候是以獨佔方式開啟,然後加密碼。所以總是想建立完資料庫以後再加密,試了試沒有成功,最後轉變一下思想,在生成的時候加密碼怎麼樣,一試果然成功了。

//建立不帶密碼的連線語句 

string

conn = 

"provider=microsoft.jet.oledb.4.0;data source="

+ filename;  

//建立加密碼的連線語句,pwd是密碼

更改資料庫密碼:sql更改資料庫密碼的語句是:

alter database password [newpassword] [oldpassword] 

用oledbconnection開啟資料庫執行此sql語句根本不行,所以我就用adodb開啟資料庫執行,但是報以下錯誤:

給access新增密碼的時候會要求以「是以獨佔方式開啟」,所以要設定開啟的模式,詳細說明如下:

ado connectmodeenum含義 設定或返回以下某個 connectmodeenum 的值。

常量                                          說明

admodeunknown                      預設值。表明許可權尚未設定或無法確定。

admoderead                            表明許可權為唯讀。

admodewrite                            表明許可權為只寫。

admodereadwrite                    表明許可權為讀/寫。

admodesharedenyread          防止其他使用者使用讀許可權開啟連線。

admodesharedenywrite          防止其他使用者使用寫許可權開啟連線。

admodeshareexclusive            防止其他使用者開啟連線。

admodesharedenynone          防止其他使用者使用任何許可權開啟連線。

更改資料庫**如下:

stringconn = 

"provider=microsoft.jet.oledb.4.0;data source="

+ filename + 

";jet oledb:database password="

+ openpwd;  

string

sql = 

"alter database password "

+ newpwd + 

" "+ openpwd;  

adodb.connection cn = 

new

adodb.connection();  

cn.mode = adodb.connectmodeenum.admodeshareexclusive;  

cn.open(conn, 

null

,null

, -1);  

// 執行 sql 語句以更改密碼。

object

num;  

cn.execute(sql, 

out

num, -1);  

cn.close();  

如果你要忘了加的密碼,可以使用使用密碼檢視工具「破解密碼unaccess」,在**裡面資料夾裡呢。

動態建立ACCESS資料庫

1 通過ole方式建立 uses comobj procedure tformoffice.bitbtn1click sender tobject varcreateaccess olevariant begin createaccess createoleobject adox.catalog c...

vc ado動態建立access資料庫

如何使用ado來動態建立access資料庫。為了使用ado,必須引入微軟的兩個動態連線庫msadox.dll和msado15.dll pragma warning disable 4146 import c program files mon files system ado msadox.dll ...

vc ado動態建立access資料庫

ado技術目前已經成為連線資料庫的主流技術,下面我來介紹如何使用ado來動態建立access資料庫。為了使用ado,必須引入微軟的兩個動態連線庫msadox.dll和msado15.dll pragma warning disable 4146 import c program files mon ...