none
有办法枚举ACESS中的表吗? RRS feed

答案

  • http://blog.csdn.net/lanman/archive/2009/03/11/3982385.aspx
    知识改变命运,奋斗成就人生!
    • 已标记为答案 胖胖亮 2009年6月23日 14:18
    2009年6月22日 15:38
    版主
  • 得到所有表
     public string[] GetShemaTableName()
            {
                try
                {
                    //获取数据表
                    OleDbConnection conn = new OleDbConnection();
                    conn.ConnectionString = "Data Source=" + Application.StartupPath + "\\PostCode.mdb;Provider=Microsoft.Jet.OLEDB.4.0";
                    conn.Open();
                    DataTable shemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
                    int n = shemaTable.Rows.Count;
                    string[] strTable = new string[n];
                    int m = shemaTable.Columns.IndexOf("TABLE_NAME");
                    for (int i = 0; i < n; i++)
                    {
                        DataRow m_DataRow = shemaTable.Rows[i];
                        strTable[i] = m_DataRow.ItemArray.GetValue(m).ToString();
                    }

                    return strTable;
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show("指定的限制集无效:\n" + ex.Message);
                    return null;
                }
                finally
                {
                    //conn.Close();
                    //conn.Dispose();
                }
            }


    努力+方法=成功
    • 已标记为答案 胖胖亮 2009年6月23日 14:19
    2009年6月23日 3:10

全部回复

  • http://blog.csdn.net/lanman/archive/2009/03/11/3982385.aspx
    知识改变命运,奋斗成就人生!
    • 已标记为答案 胖胖亮 2009年6月23日 14:18
    2009年6月22日 15:38
    版主
  • 鉴于你的问题非C#语言特有,而可能是和.Net数据类库有关,我将把此贴移至ADO.Net版。

    Please mark the post answered your question as the answer, and mark other helpful posts as helpful. This posting is provided "AS IS" with no warranties, and confers no rights.
    Visual C++ MVP
    2009年6月22日 20:27
    版主
  • 得到所有表
     public string[] GetShemaTableName()
            {
                try
                {
                    //获取数据表
                    OleDbConnection conn = new OleDbConnection();
                    conn.ConnectionString = "Data Source=" + Application.StartupPath + "\\PostCode.mdb;Provider=Microsoft.Jet.OLEDB.4.0";
                    conn.Open();
                    DataTable shemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
                    int n = shemaTable.Rows.Count;
                    string[] strTable = new string[n];
                    int m = shemaTable.Columns.IndexOf("TABLE_NAME");
                    for (int i = 0; i < n; i++)
                    {
                        DataRow m_DataRow = shemaTable.Rows[i];
                        strTable[i] = m_DataRow.ItemArray.GetValue(m).ToString();
                    }

                    return strTable;
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show("指定的限制集无效:\n" + ex.Message);
                    return null;
                }
                finally
                {
                    //conn.Close();
                    //conn.Dispose();
                }
            }


    努力+方法=成功
    • 已标记为答案 胖胖亮 2009年6月23日 14:19
    2009年6月23日 3:10