示例#1
0
        /// <summary>
        /// Creates new Access database file. Requires Access OLE DB provider (JET or ACE) and ADOX.
        /// </summary>
        /// <param name="databaseName">Name of database to create.</param>
        /// <param name="deleteIfExists">If <c>true</c>, existing database will be removed before create.</param>
        /// <param name="provider">Name of OleDb provider to use to create database. Default value: "Microsoft.Jet.OLEDB.4.0".</param>
        /// <remarks>
        /// Provider value examples: Microsoft.Jet.OLEDB.4.0 (for JET database), Microsoft.ACE.OLEDB.12.0, Microsoft.ACE.OLEDB.15.0 (for ACE database).
        /// </remarks>
        public static void CreateDatabase(string databaseName, bool deleteIfExists = false, string provider = "Microsoft.Jet.OLEDB.4.0")
        {
            if (databaseName == null)
            {
                throw new ArgumentNullException(nameof(databaseName));
            }

            databaseName = databaseName.Trim();

            if (!databaseName.ToLower().EndsWith(".mdb"))
            {
                databaseName += ".mdb";
            }

            if (File.Exists(databaseName))
            {
                if (!deleteIfExists)
                {
                    return;
                }
                File.Delete(databaseName);
            }

            var connectionString = $"Provider={provider};Data Source={databaseName};Locale Identifier=1033";

            DataTools.CreateFileDatabase(
                databaseName, deleteIfExists, ".mdb",
                _ => CreateAccessDB(connectionString));
        }
示例#2
0
        public static void CreateDatabase(string databaseName, bool deleteIfExists = false)
        {
            if (databaseName == null)
            {
                throw new ArgumentNullException(nameof(databaseName));
            }

            DataTools.CreateFileDatabase(
                databaseName, deleteIfExists, ".sqlite",
                dbName =>
            {
                // don't use CreateFile method of System.Data.Sqlite as it just creates empty file
                using (File.Create(dbName)) { };
            });
        }
示例#3
0
        public static void CreateDatabase(string databaseName, bool deleteIfExists = false)
        {
            if (databaseName == null)
            {
                throw new ArgumentNullException(nameof(databaseName));
            }

            DataTools.CreateFileDatabase(
                databaseName, deleteIfExists, ".sdf",
                dbName =>
            {
                using (var engine = SqlCeProviderAdapter.GetInstance().CreateSqlCeEngine("Data Source=" + dbName))
                    engine.CreateDatabase();
            });
        }
示例#4
0
        /// <summary>
        /// Creates new Access database file. Requires Jet OLE DB provider and ADOX.
        /// </summary>
        /// <param name="databaseName">Name of database to create.</param>
        /// <param name="deleteIfExists">If <c>true</c>, existing database will be removed before create.</param>
        public static void CreateDatabase(string databaseName, bool deleteIfExists = false)
        {
            if (databaseName == null)
            {
                throw new ArgumentNullException(nameof(databaseName));
            }

            databaseName = databaseName.Trim();

            if (!databaseName.ToLower().EndsWith(".mdb"))
            {
                databaseName += ".mdb";
            }

            if (File.Exists(databaseName))
            {
                if (!deleteIfExists)
                {
                    return;
                }
                File.Delete(databaseName);
            }

            var connectionString = string.Format(
                @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Locale Identifier=1033;Jet OLEDB:Engine Type=5",
                databaseName);

            DataTools.CreateFileDatabase(
                databaseName, deleteIfExists, ".mdb",
                dbName =>
            {
                dynamic catalog = new CatalogClass();

                var conn = catalog.Create(connectionString);

                if (conn != null)
                {
                    conn.Close();
                }
            });
        }