65.9K
CodeProject 正在变化。 阅读更多。
Home

如何使用ADOX和JET SQL在Access数据库中创建带字段的表

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.67/5 (2投票s)

2010年4月12日

CPOL
viewsIcon

36854

使用ADOX和JET SQL在Access数据库中创建带字段的简单表

引言

一种健壮的方法是在 Access 数据库中创建表,就是使用 ADOX Catalog。为了使用它,你需要添加以下或以上的引用:Microsoft ADO Ext. 2.8 for DDL and Security

背景

在这个示例中,我们将只创建和修改现有数据库中的字段,以便你可以操作你的表。这段代码仅适用于 MDB 文件,如果你想使用 ACCDB 文件,你需要将连接字符串更改为 Access 12 提供程序 "Provider=Microsoft.ACE.OLEDB.12.0",并且还需要安装 “2007 Office System Driver: Data Connectivity Components”

Using the Code

你需要在 string myPath 中提供 MDB 文件的完整路径。

public bool GenerateLogDatabase(string myPath)
        {   
            CatalogClass cat = new CatalogClass();
            string strSQL;
            string cs;

            try
            {
                cs = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                     "Data Source=" + myPath + ";" +
                     "Jet OLEDB:Engine Type=5";

                strSQL = "CREATE TABLE Issues 
			(mID AUTOINCREMENT, mUser TEXT(100) NOT NULL " +
                         ", mError TEXT(100) NOT NULL, " +
                         "mDescription TEXT(100) NOT NULL, mDate DATETIME NOT NULL)";

                cat.Create(cs);

                using (OleDbConnection cnn = new OleDbConnection(cs))
                {
                    OleDbCommand cmd = new OleDbCommand();
                    try
                    {
                        cmd.CommandText = strSQL;
                        cmd.CommandType = CommandType.Text;
                        cmd.Connection = cnn;
                        cnn.Open();
                        cmd.ExecuteNonQuery();
                        cnn.Close();
                        return true;
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                    finally
                    {
                        cnn.Close();
                        cmd.Dispose();
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {   
                Marshal.FinalReleaseComObject(cat);
            }
        }

感兴趣的点

历史

© . All rights reserved.