热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

C#动态创建Access数据库,创建加密码Access数据库,更改Access密-mysql教程

以前工作中需要全新的Access数据库,可以复制数据库,也可以把新的数据库放到资源里面,用新数据库的时候释放出来,都感觉不爽,还是动态生成心理舒服。生成数据库要使用ADO,首先添加引用。usingSystem.IO;usingSystem.Data.OleDb;连接Access数据

以前工作中需要全新的Access数据库,可以复制数据库,也可以把新的数据库放到资源里面,用新数据库的时候释放出来,都感觉不爽,还是动态生成心理舒服。 生成数据库要使用ADO,首先添加引用。 using System.IO; using System.Data.OleDb; // 连接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创建数据库,直接看代码:

   1: string cOnn= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName;
   2:             
   3: //创建数据库
   4: ADOX.Catalog catalog = new Catalog();
   5: try
   6: {
   7:     catalog.Create(conn); 
   8: }
   9: catch
  10: {}
  11:  
  12:  
  13: //连接数据库
  14: ADODB.Connection cn = new ADODB.Connection();
  15: cn.Open(conn, null, null, -1);                       
  16: catalog.ActiveCOnnection= cn;
  17:  
  18: //新建表
  19: ADOX.Table table = new ADOX.Table();
  20: table.Name = "AdPlayList";
  21:  
  22: ADOX.Column column = new ADOX.Column();
  23: column.ParentCatalog = catalog;
  24: column.Type = ADOX.DataTypeEnum.adInteger; // 必须先设置字段类型
  25: column.Name = "ID";
  26: column.DefinedSize = 9;
  27: column.Properties["AutoIncrement"].Value = true;
  28: table.Columns.Append(column, DataTypeEnum.adInteger, 0);
  29: //设置主键
  30: table.Keys.Append("PrimaryKey", ADOX.KeyTypeEnum.adKeyPrimary, "ID", "", "");
  31:  
  32: table.Columns.Append("FileName", DataTypeEnum.adVarWChar, 50);
  33: table.Columns.Append("FileDate", DataTypeEnum.adDate, 0);
  34: table.Columns.Append("FileSize", DataTypeEnum.adInteger, 9);
  35: table.Columns.Append("OrderID", DataTypeEnum.adInteger, 9);
  36: table.Columns.Append("Sha1", DataTypeEnum.adVarWChar, 50);
  37:  
  38: try
  39: {
  40:     catalog.Tables.Append(table);
  41: }
  42: catch (Exception ex)
  43: {
  44:     MessageBox.Show(ex.Message);
  45: }
  46: //此处一定要关闭连接,否则添加数据时候会出错
  47:  
  48: table = null;
  49: catalog = null;
  50: Application.DoEvents();
  51: cn.Close();

  创建加密码数据库

  创建加密数据库的时候可把我难住了,因为在Access中加密码的时候是以独占方式打开,然后加密码。所以总是想创建完数据库以后再加密,试了试没有成功,最后转变一下思想,在生成的时候加密码怎么样,一试果然成功了。

   1: //创建不带密码的连接语句
   2: string cOnn= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName;
   3: //创建加密码的连接语句,pwd是密码
   4: string cOnn= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";
Jet OLEDB:Database Password="
+ Pwd + ";Jet OLEDB:Engine Type=5";

  更改数据库密码:

  SQL更改数据库密码的语句是:

ALTERDATABASE PASSWORD [NewPassword][OldPassword]

  用OleDbConnection打开数据库执行此SQL语句根本不行,所以我就用ADODB打开数据库执行,但是报以下错误:

  给Access添加密码的时候会要求以“是以独占方式打开”,所以要设置打开的模式,详细说明如下:

  ADO ConnectModeEnum含义 设置或返回以下某个 ConnectModeEnum 的值。

常量 说明
AdModeUnknown 默认值。表明权限尚未设置或无法确定。
AdModeRead 表明权限为只读。
AdModeWrite 表明权限为只写。
AdModeReadWrite 表明权限为读/写。
AdModeShareDenyRead 防止其他用户使用读权限打开连接。
AdModeShareDenyWrite 防止其他用户使用写权限打开连接。
AdModeShareExclusive 防止其他用户打开连接。
AdModeShareDenyNone 防止其他用户使用任何权限打开连接。

  更改数据库代码如下:

   1: string cOnn= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";
Jet OLEDB:Database password="
+ openpwd;
   2: string sql = "ALTER DATABASE PASSWORD " + newpwd + " " + openpwd;
   3: ADODB.Connection cn = new ADODB.Connection();
   4: cn.Mode = ADODB.ConnectModeEnum.adModeShareExclusive;
   5: cn.Open(conn, null, null, -1);
   6: // 执行 SQL 语句以更改密码。
   7: object num;
   8: cn.Execute(sql, out num, -1);
   9: cn.Close();

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

  代码下载

  http://cid-4b517bbe6c0b58a0.office.live.com/self.aspx/.Public/cnblogsCsharp/CreateAccess.rar

推荐阅读
  • 本视频教程将带你快速了解 Android 开发的基础知识,并详细讲解如何在 Android 应用中使用 SQLite 数据库进行数据存储和管理。 ... [详细]
  • 如何撰写数据分析师(包括转行者)的面试简历?
    CDA数据分析师团队出品,作者:徐杨老师,编辑:Mika。本文将帮助您了解如何撰写一份高质量的数据分析师简历,特别是对于转行者。 ... [详细]
  • 本文总结了在SQL Server数据库中编写和优化存储过程的经验和技巧,旨在帮助数据库开发人员提升存储过程的性能和可维护性。 ... [详细]
  • C盘无法格式化的原因及解决方法
    本文探讨了C盘无法格式化的原因,并提供了详细的解决方案,帮助用户顺利进行系统维护。 ... [详细]
  • 本文详细介绍了数据库并发控制的基本概念、重要性和具体实现方法。并发控制是确保多个事务在同时操作数据库时保持数据一致性的关键机制。文章涵盖了锁机制、多版本并发控制(MVCC)、乐观并发控制和悲观并发控制等内容。 ... [详细]
  • 使用虚拟机配置服务器
    本文详细介绍了如何使用虚拟机配置服务器,包括购买云服务器的操作步骤、系统默认配置以及相关注意事项。通过这些步骤,您可以高效地配置和管理您的服务器。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 本文讨论了在进行 MySQL 数据迁移过程中遇到的所有 .frm 文件报错的问题,并提供了详细的解决方案和建议。 ... [详细]
  • 本文介绍了如何通过Sybase Central连接到示例数据库,并查看其中的表和其他对象。主要内容包括启动Sybase Central、建立连接、查看表列表及表的具体信息。 ... [详细]
  • Spark中使用map或flatMap将DataSet[A]转换为DataSet[B]时Schema变为Binary的问题及解决方案
    本文探讨了在使用Spark的map或flatMap算子将一个数据集转换为另一个数据集时,遇到的Schema变为Binary的问题,并提供了详细的解决方案。 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • 通过使用Sqoop导入工具,可以精确控制并高效地将表数据的特定子集导入到HDFS中。具体而言,可以通过在导入命令中添加WHERE子句来指定所需的数据范围,从而在数据库服务器上执行相应的SQL查询,并将查询结果高效地存储到HDFS中。这种方法不仅提高了数据导入的灵活性,还确保了数据的准确性和完整性。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • C# 中 SQLite 报错:在 "\\s\\" 附近出现语法错误,如何解决? ... [详细]
author-avatar
mobiledu2502876733
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有