以前工作中需要全新的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 =建立加密碼資料庫:建立加密資料庫的時候可把我難住了,因為在access中加密碼的時候是以獨佔方式開啟,然後加密碼。所以總是想建立完資料庫以後再加密,試了試沒有成功,最後轉變一下思想,在生成的時候加密碼怎麼樣,一試果然成功了。"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();
//建立不帶密碼的連線語句更改資料庫密碼:sql更改資料庫密碼的語句是:string
conn =
"provider=microsoft.jet.oledb.4.0;data source="
+ filename;
//建立加密碼的連線語句,pwd是密碼
alter database password [newpassword] [oldpassword]用oledbconnection開啟資料庫執行此sql語句根本不行,所以我就用adodb開啟資料庫執行,但是報以下錯誤:給access新增密碼的時候會要求以「是以獨佔方式開啟」,所以要設定開啟的模式,詳細說明如下:
ado connectmodeenum含義 設定或返回以下某個 connectmodeenum 的值。
常量 說明
admodeunknown 預設值。表明許可權尚未設定或無法確定。
admoderead 表明許可權為唯讀。
admodewrite 表明許可權為只寫。
admodereadwrite 表明許可權為讀/寫。
admodesharedenyread 防止其他使用者使用讀許可權開啟連線。
admodesharedenywrite 防止其他使用者使用寫許可權開啟連線。
admodeshareexclusive 防止其他使用者開啟連線。
admodesharedenynone 防止其他使用者使用任何許可權開啟連線。
更改資料庫**如下:
stringconn =如果你要忘了加的密碼,可以使用使用密碼檢視工具「破解密碼unaccess」,在**裡面資料夾裡呢。"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();
動態建立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 ...