亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#動態(tài)創(chuàng)建Access數(shù)據(jù)庫及密碼的方法

 更新時間:2015年09月06日 17:23:31   投稿:lijiao  
同為微軟的產(chǎn)品,本文將討論的是C#如何創(chuàng)建Access數(shù)據(jù)庫,同時創(chuàng)建數(shù)據(jù)庫密碼與相關操作,希望對大家有所幫助。

以前工作中需要全新的Access數(shù)據(jù)庫,可以復制數(shù)據(jù)庫,也可以把新的數(shù)據(jù)庫放到資源里面,用新數(shù)據(jù)庫的時候釋放出來,都感覺不爽,還是動態(tài)生成心理舒服。

生成數(shù)據(jù)庫要使用ADO,首先添加引用。

using System.IO; 
using System.Data.OleDb; //連接Access數(shù)據(jù)庫 
using ADOX;        
//引用COM:Microsoft ADO Ext. 2.8 for DDL and Security 
//添加引用:Microsoft ActioveX Data Objects 2.8 Library 

創(chuàng)建數(shù)據(jù)庫:

然后使用ADODB創(chuàng)建數(shù)據(jù)庫,直接看代碼:

 string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName; 
//創(chuàng)建數(shù)據(jù)庫 
 ADOX.Catalog catalog = new Catalog(); 
 try 
 { 
  catalog.Create(conn); 
 } 
 catch 
 {} 
 
 //連接數(shù)據(jù)庫 
 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; 
 table.Columns.Append(column, DataTypeEnum.adInteger, 0); 
 //設置主鍵 
 table.Keys.Append("PrimaryKey", ADOX.KeyTypeEnum.adKeyPrimary, "ID", "", ""); 
  
 table.Columns.Append("FileName", DataTypeEnum.adVarWChar, 50); 
 table.Columns.Append("FileDate", DataTypeEnum.adDate, 0); 
 table.Columns.Append("FileSize", DataTypeEnum.adInteger, 9); 
 table.Columns.Append("OrderID", DataTypeEnum.adInteger, 9); 
 table.Columns.Append("Sha1", DataTypeEnum.adVarWChar, 50); 
 
try 
 { 
  catalog.Tables.Append(table); 
 } 
 catch (Exception ex) 
 { 
  MessageBox.Show(ex.Message); 
 } 
 //此處一定要關閉連接,否則添加數(shù)據(jù)時候會出錯 
  
 table = null; 
 catalog = null; 
 Application.DoEvents(); 
 cn.Close(); 

創(chuàng)建加密碼數(shù)據(jù)庫:

創(chuàng)建加密數(shù)據(jù)庫的時候可把我難住了,因為在Access中加密碼的時候是以獨占方式打開,然后加密碼。所以總是想創(chuàng)建完數(shù)據(jù)庫以后再加密,試了試沒有成功,最后轉變一下思想,在生成的時候加密碼怎么樣,一試果然成功了。

//創(chuàng)建不帶密碼的連接語句 
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName; 
//創(chuàng)建加密碼的連接語句,pwd是密碼 

更改數(shù)據(jù)庫密碼:

SQL更改數(shù)據(jù)庫密碼的語句是:

ALTER DATABASE PASSWORD [NewPassword] [OldPassword] 

用OleDbConnection打開數(shù)據(jù)庫執(zhí)行此SQL語句根本不行,所以我就用ADODB打開數(shù)據(jù)庫執(zhí)行,但是報以下錯誤:

給Access添加密碼的時候會要求以“是以獨占方式打開”,所以要設置打開的模式,詳細說明如下:

ADO ConnectModeEnum含義 設置或返回以下某個 ConnectModeEnum 的值。

常量                                                                    說明
AdModeUnknown                       默認值。表明權限尚未設置或無法確定。
AdModeRead                              表明權限為只讀。
AdModeWrite                              表明權限為只寫。
AdModeReadWrite                    表明權限為讀/寫。
AdModeShareDenyRead          防止其他用戶使用讀權限打開連接。
AdModeShareDenyWrite          防止其他用戶使用寫權限打開連接。
AdModeShareExclusive            防止其他用戶打開連接。
AdModeShareDenyNone          防止其他用戶使用任何權限打開連接。

更改數(shù)據(jù)庫代碼如下:

 string conn = "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); 
// 執(zhí)行 SQL 語句以更改密碼。 
object num; 
cn.Execute(sql, out num, -1); 
 cn.Close(); 

如果你要忘了加的密碼,可以使用使用密碼查看工具“破解密碼unaccess”,在代碼里面文件夾里呢。

相關文章

最新評論