|
|||||
<このサンプルの概要> System.Data.OleDbを使用しアクセスMDBのパスワードを変更するサンプル(C#.NET) です。 アクセスMDBのパスワードを変更するSQLは"ALTER DATABASE PASSWORD [NewPsw] [OldPsw]"です。 このSQLを実行するには排他モードでDBオープンする必要があるため、コネクション文字列に "Mode=Share Exclusive;"を指定する必要があります。 ところで、、、 このサンプルではプロバイダとしてMicrosoft.Jet.OLEDB.4.0を使用していますが、 これはx86(32ビット)でのみ有効でx64(64ビット)では使用出来ません。 x64(64ビット)のパソコンでMicrosoft.Jet.OLEDB.4.0を使用するためには、 x86(32ビット)モードでコンパイルする必要があります。 x86(32ビット)モードでコンパイルするためには、[プロジェクト]の[プロパティ]で [ビルド]の[プラットフォーム ターゲット]を[x86]にします。 データベース関係のその他のサンプル(VB6/VB.NET/C#.NET)はこちらです。 データベース関係のその他のサンプル(VB6/VB.NET/C#.NET) ★クラス(Class1.cs) using System.Data.OleDb; class Class1 { /// <summary> /// ACCESS MDBファイルのパスワード変更 /// </summary> /// <param name="mdbp">MDBファイルPATH</param> /// <param name="oldp">旧パスワード</param> /// <param name="newp">新パスワード</param> public static void AccessMdbPasswd(String mdbp, String oldp, String newp) { // ACCESS MDB オープン OleDbConnection dbCon = new OleDbConnection(); String cst = ""; cst = cst + "Provider=Microsoft.Jet.OLEDB.4.0;"; cst = cst + "Data Source=" + mdbp + ";"; if (oldp != "") { cst = cst + "Jet OLEDB:Database Password=" + oldp + ";"; } cst = cst + "Mode=Share Exclusive;"; dbCon.ConnectionString = cst; dbCon.Open(); // 旧パスワード用のSQL生成 if (oldp == "") { oldp = "NULL"; } else { oldp = "[" + oldp + "]"; } // 新パスワード用のSQL生成 if (newp == "") { newp = "NULL"; } else { newp = "[" + newp + "]"; } // ACCESS MDB パスワード変更 String sql = "ALTER DATABASE PASSWORD " + newp + " " + oldp; OleDbCommand dbCmd = new OleDbCommand(sql, dbCon); dbCmd.ExecuteNonQuery(); // ACCESS MDB クローズ dbCon.Close(); dbCon.Dispose(); } } ★フォームモジュール(Form1.cs) public partial class Form1 : Form { private void Button1_Click(object sender, EventArgs e) { // パスワード(無し)→パスワード(abc)変更 Class1.AccessMdbPasswd(@"D:\Temp\db1.mdb", "", "abc"); // パスワード(abc)→パスワード(123)変更 Class1.AccessMdbPasswd(@"D:\Temp\db1.mdb", "abc", "123"); // パスワード(123)→パスワード(無し)変更 Class1.AccessMdbPasswd(@"D:\Temp\db1.mdb", "123", ""); } } |