zoukankan      html  css  js  c++  java
  • 使用ACCESS中隐藏的MSysObjects数据表来确定是否存在某个数据表!

    在昨天的随笔中,我写了篇关于使用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();
            }

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    C#事件由浅至深简析
    数据传递型情景下事件机制与消息机制的架构设计剖析(目录)
    数据传递型情景下事件机制与消息机制的架构设计剖析(一)
    从问题说开来……
    windows server作为文件服务器如何精细控制权限
    TortoiseGit 删除密码 清除密码 让你每次都输入账号密码提交
    adb基础常用命令总结
    python之冒泡排序
    python水仙花数
    fiddler抓取手机(iPhoneX)APP上HTTPS接口数据
  • 原文地址:https://www.cnblogs.com/Athrun/p/730572.html
Copyright © 2011-2022 走看看