程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#靜態創立Access數據庫及暗碼的辦法

C#靜態創立Access數據庫及暗碼的辦法

編輯:C#入門知識

C#靜態創立Access數據庫及暗碼的辦法。本站提示廣大學習愛好者:(C#靜態創立Access數據庫及暗碼的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#靜態創立Access數據庫及暗碼的辦法正文


之前任務中須要全新的Access數據庫,可以復制數據庫,也能夠把新的數據庫放到資本外面,用新數據庫的時刻釋放出來,都感到不爽,照樣靜態生故意理舒暢。

生成數據庫要應用ADO,起首添加援用。

using System.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創立數據庫,直接看代碼:

 string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName; 
//創立數據庫 
 ADOX.Catalog catalog = new Catalog(); 
 try 
 { 
  catalog.Create(conn); 
 } 
 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; 
 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); 
 } 
 //此處必定要封閉銜接,不然添加數據時刻會失足 
  
 table = null; 
 catalog = null; 
 Application.DoEvents(); 
 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          避免其他用戶應用任何權限翻開銜接。

更改數據庫代碼以下:

 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); 
// 履行 SQL 語句以更改暗碼。 
object num; 
cn.Execute(sql, out num, -1); 
 cn.Close(); 

假如你要忘了加的暗碼,可使用應用暗碼檢查對象“破解暗碼unaccess”,在代碼外面文件夾裡呢。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved