求助:获取表名

nilrxn 2007-04-04 09:03:21
代码写到conn.open()
然后我要获取这个数据库 表的表名,怎么弄?
大侠帮忙
也就是说一个access数据库下有t1、t2、t3 3个表
如何获取表名?
谢谢
...全文
293 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhh21 2007-04-04
  • 打赏
  • 举报
回复
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "select name from Msysobjects where type =6"
cmd.ExecuteReader()

Msysobjects 为Access 的系统表 type =6 为用户表
hhh21 2007-04-04
  • 打赏
  • 举报
回复
sdsd
feeling3 2007-04-04
  • 打赏
  • 举报
回复
adapter.FillSchema(datatable, SchemaType.Source)
nilrxn 2007-04-04
  • 打赏
  • 举报
回复
如何获取表名 谢谢
新鲜鱼排 2007-04-04
  • 打赏
  • 举报
回复
将表名存在一个固定的表中。
nilrxn 2007-04-04
  • 打赏
  • 举报
回复
谢谢 :mapserver(杨东 http://mapserver.cnblogs.com) 以及各位DX
简单用VB翻译了下,只消把TABLE_NAME列中东西弄出来就行


Dim connacc As New OleDbConnection
connacc.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & OpenFileDialog1.FileName

Button6.Text = OpenFileDialog1.FileName
Try
connacc.Open()
Dim lbn As DataTable
Dim res As Object
lbn = connacc.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, res)
DataGridView1.DataSource = lbn
Catch ex As Exception
TextBox1.Text = ex.ToString
Finally
connacc.Close()
connacc.Dispose()
xmz4 2007-04-04
  • 打赏
  • 举报
回复
adapter.FillSchema(datatable, SchemaType.Source)
mapserver 2007-04-04
  • 打赏
  • 举报
回复
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}
mapserver 2007-04-04
  • 打赏
  • 举报
回复
在Access不知道了,在sql server下可以:
select * from sysobjects where type in ('t','T')
nilrxn 2007-04-04
  • 打赏
  • 举报
回复
怎么实现呢?建个表来存表名 不会是手动建把
shadow841112 2007-04-04
  • 打赏
  • 举报
回复
access不清楚,sql就很容易了

LZ可以专门建一个表t4来保存表名
nilrxn 2007-04-04
  • 打赏
  • 举报
回复
System.Data.OleDb.OleDbException: 不能读取记录;在 'Msysobjects' 上没有读取数据权限。
在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
在 System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
在 System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧