1

我看过一些教程,但我尝试的一切都不起作用。

我想要一个简单的项目,只有一个文本框(数据库名称所在的位置)和一个创建Access数据库并将其保存在c:\.

你能帮帮我吗?:)

4

3 回答 3

1

为此,您将需要 catlogclass,如下所示:

CatalogClass catcls = new CatalogClass();  
string tmpStr;  
string filename = txtFileName.Text+".MDB";   
tmpStr = "Provider=Microsoft.Jet.OLEDB.4.0;";   
tmpStr += "Data Source=" + filename + ";Jet OLEDB:Engine Type=5";  
catcls.Create(tmpStr);

下一步是创建表:

Table nTable = new Table(); 
 nTable.Name = "tlbData"; 
 nTable.Columns.Append("FName", DataTypeEnum.adVarWChar, 25);
 catcls.Tables.Append(nTable);

使用以下代码释放 COM 对象:

System.Runtime.InteropServices.Marshal.FinalReleaseComObject(nTable); 
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(catcls.Tables);    
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(catcls.ActiveConnection); 
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(catcls);

希望它有帮助。

于 2013-05-10T04:39:18.303 回答
1

以编程方式.. 在 VB Net 中创建 MDB,使用此功能

Public Function CreateAccessDatabase( _
    ByVal DatabaseFullPath As String) As Boolean
        Dim bAns As Boolean
        Dim cat As New ADOX.Catalog()
        Try


         'Make sure the folder
         'provided in the path exists. If file name w/o path 
         'is  specified,  the database will be created in your
         'application folder.

            Dim sCreateString As String
            sCreateString = _
              "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
               DatabaseFullPath
            cat.Create(sCreateString)

            bAns = True

        Catch Excep As System.Runtime.InteropServices.COMException
            bAns = False
            'do whatever else you need to do here, log, 
            'msgbox etc.
        Finally
            cat = Nothing
        End Try
        Return bAns
    End Function
'DEMO
'      If CreateAccessDatabase("F:\test.mdb") = True Then
'           MsgBox("Database Created")
'      Else
'           MsgBox("Database Creation Failed")
'      End If

来源

或以简单的方式..

  1. 使用您的 MS-Access 创建您的 MDB 或 ACCDB .. 您可以将其命名为 Template.MDB
  2. 当用户在您的文本框中输入内容时,您可以执行此操作

My.Computer.FileSystem.CopyFile(d & "Template.MDB", textbox1.text & _ ".MDB",FileIO.UIOption.AllDialogs, FileIO.UICancelOption.DoNothing)

不要伪造目标路径..

于 2013-05-10T05:46:40.943 回答
1

要创建一个新的空 Access 数据库,您需要做的就是添加一个 COM 引用到

“用于 DDL 和安全性的 Microsoft ADO 扩展 2.8”

到您的项目,然后使用如下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace adoxTest
{
    class Program
    {
        static void Main(string[] args)
        {
            string myConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data source=C:\__tmp\myDB.accdb;";

            // the following code requires a COM reference to "Microsoft ADO Ext. 2.8 for DDL and Security"
            var cat = new ADOX.Catalog();
            cat.Create(myConnectionString);  // create a new, empty .accdb file

            Console.WriteLine("Done.");
        }
    }
}

如果你想去“老派”并.mdb使用 Jet 创建一个文件,那么只需使用以下连接字符串......

string myConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\__tmp\myDB.mdb;";

...但请注意,如果您的应用程序以 64 位运行(因为没有 Jet 数据库引擎的 64 位版本),这将失败。

于 2013-05-10T07:12:27.063 回答