使用ACCESS中隱藏的MSysObjects資料表來確定是否存在某個資料表!

來源:互聯網
上載者:User
在昨天的隨筆中,我寫了篇關於使用C#的強大異常判斷和報錯來判斷是否已經存在了制定資料表,如果不存在則到網上下載。因為我考慮不周,沒有加上代碼,判斷出錯類型,所以很不準確。但是,應該說,這是一個思路,個人認為比較實用的思路。
今天我換了一個方法,使用ACCESS中隱藏的MSysObjects資料表來確定是否存在某個資料表!但是有前提條件,必須手動或者要本機設定MSysObjects資料表的可讀屬性。預設建立的ACCESS資料庫的MSysObjects資料表是不支援JET SQL來讀取的。
下面的代碼是我的軟體中的一部分,目的是對於已經存在的一個資料庫的MSysObjects資料表進行讀取,判斷是不是存在制定的資料表,如果不存在,則建立一個新的資料表。
下面是代碼:        public void MakeTbuser(string MDBPath, string NewTbuserName)
        {
            string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
            strConnection += @"Data Source=" + MDBPath;
            OleDbConnection objConnection = new OleDbConnection(strConnection);
            string OleDbCommandString = "SELECT Id FROM MSysObjects WHERE Name='" + NewTbuserName + "' AND Type=1 AND Flags=0";
            OleDbCommand objCommand = new OleDbCommand(OleDbCommandString,objConnection);
            objConnection.Open();
            OleDbDataReader objDataReader = objCommand.ExecuteReader();
            Boolean bb;
            if (objDataReader.Read())
                bb = true;
            else
                bb = false;
            objDataReader.Close();
            if (bb == false)
            {
                OleDbCommandString = "CREATE TABLE " + NewTbuserName;
                OleDbCommandString += " ( ";
                OleDbCommandString += "AutoID AUTOINCREMENT(1,1) PRIMARY KEY,UserName TEXT(50),UserPsd TEXT(50),";
                OleDbCommandString += "LastLoginTime DateTime,LoginTimes Int,MailInbox TEXT(10)";
                OleDbCommandString += ");";
                objCommand = new OleDbCommand(OleDbCommandString, objConnection);
                objCommand.ExecuteNonQuery();
            }
            objCommand.Dispose();
            objConnection.Close();
        }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.