得到Access数据库中的所有表名
实际开发中,我们会遇到很多问题.有些问题可能以前遇到过,只是没有将解决问题的方法写下来,到后来再碰见时也便忘记了.因此造成了时间与经济上的浪费.如果我们能够抽点时间将解决问题的方法写下来,我想无论是对于工作还是对于个人的成长都会有一定的好处.
下面是本人得到Access数据库中的所有表名的解决方法,可能不够完善,希望大家能够指正.原与大家相互学习,共同进步.
1using System;
2using System.Data;
3using System.Data.OleDb;
4
5namespace Test
6{
7 public class DataOle
8 {
9 /// <summary>
10 /// 返回Mdb数据库中所有表表名
11 /// </summary>
12 /// <param name="strDbPath">Access数据文件路径</param>
13 /// <returns>表名数组</returns>
14 public static string[] GetShemaTable(string strDbPath)
15 {
16 //创建OleDb数据库连接
17 OleDbConnection pOleConn;
18
19 //设置数据连接
20 pOleConn=new OleDbConnection();
21 pOleConn.ConnectionString=@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +strDbPath ;
22 pOleConn.Open();
23
24 try
25 {
26 //获取数据表
27 DataTable shemaTable=pOleConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"TABLE"});
28
29 int n=shemaTable.Rows.Count ;
30 string[] strTable=new string[n];
31 int m=shemaTable.Columns.IndexOf("TABLE_NAME");
32
33 for(int i=0;i<n;i++)
34 {
35 DataRow m_DataRow=shemaTable.Rows[i];
36 strTable[i]=m_DataRow.ItemArray.GetValue(m).ToString();
37 }
38
39 return strTable;
40 }
41 catch(OleDbException ex)
42 {
43 Console.WriteLine("指定的限制集无效!");
44 Console.WriteLine(ex.Message);
45 return null;
46 }
47 finally
48 {
49 pOleConn.Close();
50 pOleConn.Dispose();
51 }
52 }
53 }
54
55
56 public class AppMain
57 {
58 public static void Main()
59 {
60 string[] TableName=DataOle.GetShemaTable(@"C:\1.mdb");
61
62 if(TableName!=null)
63 {
64 //Write each table name
65 for(int i=0;i<TableName.Length;i++)
66 {
67 Console.WriteLine("DataTale {0} Name is {1}",i,TableName[i]);
68 }
69 }
70
71 Console.WriteLine("OK");
72 }
73 }
74}
2using System.Data;
3using System.Data.OleDb;
4
5namespace Test
6{
7 public class DataOle
8 {
9 /// <summary>
10 /// 返回Mdb数据库中所有表表名
11 /// </summary>
12 /// <param name="strDbPath">Access数据文件路径</param>
13 /// <returns>表名数组</returns>
14 public static string[] GetShemaTable(string strDbPath)
15 {
16 //创建OleDb数据库连接
17 OleDbConnection pOleConn;
18
19 //设置数据连接
20 pOleConn=new OleDbConnection();
21 pOleConn.ConnectionString=@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +strDbPath ;
22 pOleConn.Open();
23
24 try
25 {
26 //获取数据表
27 DataTable shemaTable=pOleConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"TABLE"});
28
29 int n=shemaTable.Rows.Count ;
30 string[] strTable=new string[n];
31 int m=shemaTable.Columns.IndexOf("TABLE_NAME");
32
33 for(int i=0;i<n;i++)
34 {
35 DataRow m_DataRow=shemaTable.Rows[i];
36 strTable[i]=m_DataRow.ItemArray.GetValue(m).ToString();
37 }
38
39 return strTable;
40 }
41 catch(OleDbException ex)
42 {
43 Console.WriteLine("指定的限制集无效!");
44 Console.WriteLine(ex.Message);
45 return null;
46 }
47 finally
48 {
49 pOleConn.Close();
50 pOleConn.Dispose();
51 }
52 }
53 }
54
55
56 public class AppMain
57 {
58 public static void Main()
59 {
60 string[] TableName=DataOle.GetShemaTable(@"C:\1.mdb");
61
62 if(TableName!=null)
63 {
64 //Write each table name
65 for(int i=0;i<TableName.Length;i++)
66 {
67 Console.WriteLine("DataTale {0} Name is {1}",i,TableName[i]);
68 }
69 }
70
71 Console.WriteLine("OK");
72 }
73 }
74}